コンピュータや音楽の事書いてます

プログラミング

powershellでExcel操作+画像ファイルをクリップボード経由でシート貼り付け

ショートカット cmd.exe /c powershell -noexit \app\scripts\toExcel2.ps1 を作り、そのショートカットへ複数フォルダをドラッグアンドドロップすると、 フォルダ毎別シートになって、ファイル名一覧をシートに書き込む。 拡張子が.DATまたは.csvのものは内…

c++Builder [ilink32 エラー] Error: 未解決の外部シンボル 'Excel_xp::CLSID_ExcelApplication' が xxx から参照されています

Excel関連の処理のある、C++Builder 4.2 のプロジェクトをbcc32(従来のコンパイラ)からbcc32c(Clang)へ移行するときの話。 C++Builder -> プロジェクト -> オプション -> C++コンパイラ -> "従来のコンパイラ" を外した場合、Clangによるコンパイルに切…

C++Builder エラーメッセージをググっても見つからないとき

Embarcadero C++Builderの情報はネット上でも非常に少なく、日本語のエラーメッセージをググっても事例などが見つからないことが多い。 英語に変更すれば見つかる可能性が高まる。 また、バッチコンパイルでコンパイルの高速化をした際、メッセージが文字化…

ImageListにPNG画像を読み込んだら色が変わってしまう

Microsoft OfficeのTaskPaneにUserControlを配置し、そこへ画像ボタンを配置したら、元の画像ファイルよりも明るい色に変わった。 原因は全くわからない。バグでは? 現象はImageListにPNG画像を読み込んだ状態で起こった。ImageListならMouseHoverとかMouse…

無名関数をclassメンバに代入しても実行できないとき

このような無名関数を $getMailBody = function ($data){ return <<<EOF {$data["氏名"]} 様 この度は、 EOF; }; $db->customerMailBody = $getMailBody; //クラスメンバへ代入 このクラスのメンバに代入したとき、 class DB { public Closure $customerMailBody; これでは実行時エラーになってしまう。 //DB</eof>…

jQueryのpostでphpでDBにinsertしたら SyntaxError: Unexpected end of JSON input at parse ()

DB処理はちゃんと終わっているのに、ブラウザに帰ると、jQueryの.fail() に入ってきてしまう。原因はレスポンスを返していないせいだった。 insertだから何も返さなくて良いと勘違いしており、 echo json_encode($statement->fetchAll(PDO::FETCH_ASSOC)); …

Failed to read the 'cssRules' property 回避

読み込んでいる全スタイルシートから検索 var ss=document.styleSheets; ss.forEach(s=>{ var cr; try { cr = s.cssRules; } catch{return;} //クロスドメインのstyleSheetは失敗するので飛ばす cr && cr.forEach(r=>{ var text = r.cssText; var sel = r.se…

ClickOnceでインストールされた場所を実行時に参照したいとき

ビルドアクション: コンテンツ 出力ディレクトリにコピー を指定したファイルをプログラム内で使用したいとき これだと一時的な実行pathなのでコンテンツファイルを参照出来ない var exepath = Assembly.GetEntryAssembly().Location; こっちなら、コンテン…

CustomerData 内に CustomXMLPart を作成し、スライド上には見えない独自のデータを埋め込む

using Microsoft.Office.Interop.PowerPoint; using Microsoft.Office.Core; Microsoft.Office.Interop.PowerPoint.Application app; CustomXMLPart xml; ユーザがスライドを選択したら、 app.SlideSelectionChanged += App_SlideSelectionChanged; Customer…

リボン _LoadでActiveWindowを取得するとリボンが表示されない

リボンの .cs[デザイン] タブのプロパティ ControlId - ControlIdTypeをCustomにすると発生したトラブル。 public partial class Ribbon1 { DocumentWindow window; private void Ribbon1_Load(object sender, RibbonUIEventArgs e) { //この行を削除すると…

まとめ WindowsアプリからODBCでFileMaker Serverへアクセス

注意点まとめ https://neuromancer-sho.hatenablog.com/entry/20151201/1448964821 ここに設定されているのがfmpファイルを置く場所 (サーバに置く前に)拡張アクセス権に [ODBC/JDBC によるアクセス ] を追加しないと、「Unable to open file」になる それ…

.NET Framework を入れてあるのに、インターネット接続を要求される

一見、Microsoft .NET Frameworkのダウンロードをしようとしている様に見えるが、Language Pack が足りない場合に起こる事がある。 よく見ると、ダウンロード要求の文章の中に MICROSOFT WINDOWS オペレーティング システム用 MICROSOFT .NET FRAMEWORK 4 MI…

Form.Loadイベント内での例外の謎

Loadイベントから呼ばれる処理がうまくいっていない原因をVisual Studioで調査中のこと。 this.Load += new System.EventHandler(this.AAA_Load); private void AAA_Load(object sender, EventArgs e) { Top = Parent.Top + Parent.Height; Top = 〜の行でPa…

Facebookのメッセージを先頭まで辿る

https://www.facebook.com/messages 友達選んでから、chromeのDeveloper ToolsのConsoleに貼り付けてEnter。 var loop = 30; //丁度良い量に調整してね var sArea = document.getElementsByClassName("uiScrollableArea contentBefore _5f0v")[0]; sArea = s…

Facebookの「いいね!」地獄からの開放

友達が多くなってくると、沢山の記事の中から重要な記事を探すのが難しくなってくる。時間が無いときには、なるべく優先度の高い記事を読みたい。そういう意味では、誰か経由の間接的な「いいね!」記事はスキップして読む事が良くあるだろう。 そんなときは…

ExcelのRangeオブジェクトとstring[,]の相互一括代入

string[,]の大きさは string[,] table = new string[Rowの数, Columnの数]; string[,]からRangeは素直に。 sheet.get_Range("a:b").Value = table; Rangeからstring[,]の場合は、Rangeがdynamic型の為、as演算子?で変換する。 string[,] table = sheet.get_…

Google Spreadsheetで「You do not have permission to call 〜」

これを使って CalendarApp.getCalendarById("ja.japanese#holiday@group.v.calendar.google.com"); holidays = calendar.getEvents(startDate, endDate); をonEditから起動し、日本の祝日を取得しようと思ったら、"You do not have permission to call getCa…

Facebookのタイムラインを検索したい

Chromeで検索したいタイムラインを表示させた状態で、画面右クリックし、「要素の調査」。Developer ToolsのConsoleに以下を貼り付け、theWordを検索したい文字列に変えて実行。 var theWord = "liveleak"; //検索ワード var times = 100; //何回チャレンジ…

ingressのCOMMの会話ログ取得

http://www.ingress.com/intel のログを過去に遡ろうとすると結構大変なので。 AllかFaction、とりたい方を選択しておく マップの範囲も調節しておく Firefoxの場合、COMM内を右クリック「Firebugで要素を調査」 Chromeの場合、COMM内を右クリック「要素を検…

Select して、ToListして、ForEach

private void button1_Click(object sender, EventArgs e) { textBox1.Text = ""; new List<int> { 1, 2, 3, 4, 5 } .Select(x => (x * 2).ToString()) .ToList() .ForEach(x => textBox1.Text += x + ","); }</int>

メモ: LINQは便利

using System.Linq; using PowerPoint = Microsoft.Office.Interop.PowerPoint; PowerPoint.Presentation pres = /* 何かのパワポのファイル */; pres.Windows.OfType<PowerPoint.DocumentWindow>() .Where(w => w.ViewType == PowerPoint.PpViewType.ppViewNormal) .ElementAt(0).Panes</powerpoint.documentwindow>…

ありそうで無い scriptTester

貼り付けて、ボタン押すだけ。vbscript, jscriptの実行。 scriptTester.zip using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System…

wscript上のjscriptでの型判定

javascriptは型判定のまともな関数が無いので、Object.prototype.toString.callを使う人が多いらしい。しかし、wscript上ではどうも動かないみたい。(ブラウザではなく、Windowsのバッチ処理の話) なのでVBScriptのtypenameをjscriptから呼び出す。 var sc…

MS Office リボンを作る時のメモ

MSDNのドキュメントはどこに何が書いてあるのか探すの大変なので、転載しておく。リンクしても勝手に移動されるので。 あと、サンプルは本家よりも http://homepage2.nifty.com/suyamsoft/Ribbon/Sample/index.html の方が100倍使える。 コールバック関数 ht…

PowerPointにはScreenUpdatingがない

Excelで重い描画処理をする場合、ScreenUpdatingプロパティを使えば高速化出来る。しかし、PowerPointにはこのプロパティが無い為困る。 この様にしたら速くなった。 準備 using PPT = Microsoft.Office.Interop.PowerPoint; using System.Runtime.InteropSe…

Google Spreadsheetで曜日によるセルの色替え

条件付き書式だと該当セルしか変えられないので。 2,1 に月の最初の日付を入れると起動。 var sheet; function onEdit(e){ var r = e.range; sheet = SpreadsheetApp.getActiveSheet(); if(sameAddress(sheet.getRange(2, 1), r)) if(changeBackGroundColor(…

Excel, PowerPoint, Wordのマクロのエクスポートvbs

マクロのソースを比較したい時、ソース管理システムに登録したい時など、xlsm、pptmなどのファイルから、モジュール単位でテキストファイルに吐き出す。Excel, PowerPointで出来たので、多分Wordも出来る。 ↑VBAプロジェクトオブジェクトモデルへのアクセス…

scripting.dictionary の罠

こういうのが合った場合、 set dic = createobject("scripting.dictionary") for i = 0 to 10 dic(i) = "あいうえ" '数値をキーにして格納 next i = inputbox(msg) 'ここでiは文字列になる result = dic(i) 'ヒットしない。しかも、ここで件数が1つ増える(…

bash cgi サーバ側ファイルがshift-jisのときに、ブラウザ側ではUTF-8で扱いたい

素人がアップする、など、どうしてもファイルの中身がshift-jisである場合、 AJAXのgetで、ファイルを要求、それをUTF-8に変換してブラウザで表示する、などという場合、ブラウザがIE以外であればoverrideMimeTypeを使えば良いが、IEの場合、responseBodyをA…

FTPサーバの全階層ファイル一覧をテキストに出力

使い方:以下3つを正しいものに書き換える serverXXX userXXX passwordXXX ftp.exeのパラメータファイルを作らないで標準入力・標準出力から制御するところがミソ。 option explicit dim ws, fso, ftp, lines, regex, line, outfile, outfilename, errmsg s…