2012-04-06から1日間の記事一覧

DLLでC側からVBA側へ文字列を渡す

VC

VBA側宣言のByVal x As Stringと VBA側でStringの領域を確保しておくのがミソVC++側 extern "C" __declspec (dllexport) int __stdcall Test2(char *X, char *Y); extern "C" __declspec (dllexport) int __stdcall Test2(char *X, char *Y) { Y[0] = 'A'; Y…

マクロの実行速度を早めるには画面更新の停止(Application.ScreenUpdating = False)

大量にマクロ実行するときは必須。 ネタ元 http://www.relief.jp/itnote/archives/001259.php Excelマクロ& VBA基本技

ワイド文字 マルチバイト文字 Shift-jis Unicodeのややこしい違いが明確になる図

VC

ネタ元 http://marupeke296.com/CPP_charUnicodeWideChar.html

プロセス間で動的メモリを共有・・・は難しいみたい

VC

http://d.hatena.ne.jp/ir9Ex/20051126/1132980505 CreatFileMapping とか、結局ファイルでやり取りするしか無いのかな。

Excelのユーザー定義関数で、自分自身が書き込まれているセルのアドレス取得にはApplication.ThisCell.Address

ThisCellプロパティで取得する Function test() MyString = Application.ThisCell.Address(False, False, xlA1) test = "入力されているセルは、" & MyString & "です" End FunctionCallerプロパティで取得する Function test2() MyString = Application.Cal…

セル背景や文字を点滅させる方法

シートのChangeイベントを使う標準モジュール内にはこの関数は置けないよ 'API宣言---魔法の呪文みたいなもの Private Declare Sub Sleep Lib "KERNEL32.dll" _ (ByVal dwMilliseconds As Long) Private Sub Worksheet_Change(ByVal Target As Range) 'セル…

Rangeに含まれるセルを展開するにはCellsを使う

Excelのヘルプにあったので転載 myRange という名前の列を調べて、セルの値が 1 つ上のセルの値と同じ場合は、重複するデータを持つセルの参照を表示します。 Set r = Range("myRange") For n = 1 To r.Rows.Count If r.Cells(n, 1) = r.Cells(n + 1, 1) The…

タイマーを使った制御色々

http://www.asahi-net.or.jp/~zn3y-ngi/YNxv214.html#8-1

ExcelVBAの再計算 / リンクした値の更新

リンクの更新 ActiveWorkbook.RefreshAll 再計算 Calculate 又はActiveSheet.Calculate ネタ元 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1022909605

右隣のセルを参照するにはoffset()

http://www.moug.net/tech/exvba/0050161.html