Dim addTop Dim addLeft addTop = Range("A1").Top addLeft = Range("A1").Left Dim btn Set btn = Workbooks("hogeシート.xlsm").Sheets("hogehoge").Buttons.Add(addLeft + 19.5, addTop, 133.5, 37.5) btn.Characters.Text = "ボタン名" btn.OnAction = "マクロ名"
ExcelVBAで文字などの簡単な入力ダイアログ
Sub Sample1() Dim buf As String buf = InputBox("名前を入力してください") Range("A1") = buf End Sub
ExcelVBAでマクロ実装させずにワークシート開く方法
Workbook_Open()にやらかしマクロ書いちゃったときなどに使います。
- Excelを起動する。
- メニューの「開く」を選択。
- 「ファイルを開く」ダイアログで、開きたいファイルをクリック。
- Shiftを押しながら「開く」をクリック。
Excelvbaでクリックしたボタンの座標取得
MsgBox ActiveSheet.Shapes(Application.Caller).Left
MsgBox ActiveSheet.Shapes(Application.Caller).Top
MsgBox ActiveSheet.Shapes(Application.Caller).Width
MsgBox ActiveSheet.Shapes(Application.Caller).Height
$A$2 とかの書式ならこちら
MsgBox ActiveSheet.Shapes(Application.Caller).TopLeftCell.Address
C#でstringの中の最後尾の文字列を調べる
EndsWith()を使う
if(!str.EndsWith("\r\n")) str+="\r\n";
C#で文字列連結するならStringBuilderが高速
サイズわかってるならStringBuilderのCapacityを指定しておくと高速。
ExcelVBAでutf-8指定でファイル読み込みする
ADO(ActiveX Data Objects) 使う
Sub Sample1() Dim buf As String, Target As String Target = "D:\Work\UTF-8のテキスト.txt" With CreateObject("ADODB.Stream") .Charset = "UTF-8" .Open .LoadFromFile Target buf = .ReadText .Close MsgBox buf End With End Sub
ExcelVBAでRange()からRow Column取得してCells()によるアクセスする方法
Debug.Print Range("A1").Row & "," & Range("A1").Column
ExcelVBAでPasteSpecialするときに、描画停止してるとエラーになる
Range("E1").PasteSpecial
などするときは
'描画停止 Application.ScreenUpdating = False
はしないようにしましょう。
C#でTA-Libメモ
使い方メモ
lookback という指定があるが、
これはデータ配列でまとめて渡して計算させると、
lookback 単位で複数一気に計算してくれるものらしい。
連続した指標を作るときに何回も同じ関数呼ばなくてもいいのですね。便利。