

ExcelをVBAではなくAutoHotkeyで動かしてみたいと思います。
AutoHotkeyなら、他のソフトの連携も簡単です。
ComObjectを使いたいと思います。
AutoHotkeyの本家英語サイト:
ExcelのComobjectを取得し、セルに書き込み
Excelを操作する最初の一歩
開いてるExcelを操作、パスを指定しExcelを開き操作
開いてるExcelのセルに値を入れる 1
F1::
oExcel := ComObjActive("Excel.Application")
oExcel.Range("A1").Value := "日本"
oExcel.Range("A2").Value := "日本最高"
既存のExcelファイルを開き、セルに値を入れる 2
F1::
oEx := ComObjCreate("Excel.Application")
oEx.Visible := 1
oExcel := oEx.Workbooks.Open("F:\studyData\Autohotkey\Excel\For_cad.xlsm")
s := "Excel自動化"
Sleep, 2000
oExcel.Sheets(1).Range("A1").Value := s
ファイルを開くときは、.visible と .Workbooks.open と必要なコード増えます。
1と2を合体 Try ~ Catch ~ を使って
F1::
Try
{
oExcel := ComObjActive("Excel.Application")
s := "AutoHotkey"
}
Catch
{
oEx := ComObjCreate("Excel.Application")
oExcel := oEx.Workbooks.Open("F:\studyData\Autohotkey\Excel\For_cad.xlsm")
oEx.Visible := 1
s := "Excel自動化"
}
Sleep, 2000
oExcel.Sheets(1).Range("A1").Value := s
Try コマンドA Catch コマンドB
コマンドAを実行し、エラーなら、コマンドBを実行します。
このコマンドの説明、日本語サイトには出てきません。英語サイトを見ましょう。
Excelのセル値を取得
上のコードに追加してください。
^F1::
get_cell_1 := oExcel.Sheets(1).Range("D10").Value
MsgBox, %get_cell_1%
Return

80.000000 後ろの00なんで6桁? AutoHotkeyの仕様?
コンピュータの数値は2進数なので、よく理解できません。Excelがどんな型で持ち、AutoHotkeyの型も
Cellの背景色をかえる
F1::
xl := ComObjActive("Excel.Application")
IF (Toggle := !Toggle)
xl.ActiveWorkbook.ActiveSheet.Range("a1:a2").Interior.Color := 0x0000FF
;赤
Else
xl.ActiveWorkbook.ActiveSheet.Range("a1:a2").Interior.Color := 0x5FD200
;緑
xl := ""
Return
「RGB()」は使えないようです。
Cell すべて消す = Clear
~.ActiveWorkbook.ActiveSheet.Range("A2").Clear
セルの値、背景色などの書式設定を消します。
参考サイト:
Cellの値をクリップボードまたは別のセルに移動 = Cut()
~.ActiveWorkbook.ActiveSheet.Range("A2").Cut("c2")
Cut() 引数なし=クリップボードに CTRL+x と同じ
Cut(“D2”) = D2に値移動
Cell 罫線で囲む BorderAround(線の種類,太さ,色)
よく理解できてません
.ActiveWorkbook.ActiveSheet.Range("A3").BorderAround(4,2,3)
線の種類:
1 Continuous line.
-4115 Dashed line.
4 Alternating dashes and dots.
5 Dash followed by two dots.
-4118 Dotted line.
-4119 Double line.
-4142 No line.
13 Slanted dashes.
太さ:
| 名前 | 値 | 説明 |
|---|---|---|
| xlHairline | 1 | Hairline (thinnest border). |
| xlMedium | -4138 | Medium. |
| xlThick | 4 | Thick (widest border). |
| xlThin | 2 | Thin. |
色:
| 3 | 赤 |
| 5 | 青 |



コメント