ExcelのVBA
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
] [
Twitter
]
開始行:
→Office関連メモ
→Excel関連
→C#によるExcel制御
→Visual Basic(.NET以前)
#contents
* サブトピック [#zd8f2c00]
-ExcelのVBAで図形/シェイプの処理
-ExcelVBAによるファイル処理
-ExcelVBAサンプル集
*一般 [#bbc20b28]
-[[参照設定とCreateObjectの対応リスト>http://www.thom.jp/...
-[[VBAマクロからPythonを実行する(xlwings)>https://pytho...
-vbaでEnum値の名前が適切ではありませんというエラーになる...
--Select Case 側で <Enum名>.値という書き方で参照しないと...
-[[個人マクロブック等に保存して利用するVBAの汎用コード7...
1. セル参照のA1形式・R1C1形式の表示を切り替えるマクロ
2. すべてのシートをA1セル選択状態にするマクロ
3. データ整形する
4. 赤枠背景透明図形の挿入
5. 選択画像の外枠線切替
6. アクティブブックの非表示のシートを再表示/非表示に...
7. アクティブブックのすべてのシートの保護を一括で解...
-[[「VBAでInteger型は使わない」って、知ってた!? #初心者...
-[[VBAでUTF-8のCSVを読み込む方法|分析屋>https://note.com...
--QueryTables.add
-[[【ExcelVBA】マクロでのみ編集可能なシート保護を設定する...
-[[エクセルマクロのお作法(計算用シートという諸悪の根源に...
-[[【Excelのタイパな話】初心者がExcelでVBAの代わりにOffic...
-[[VBAからSQL Serverに接続する方法(Microsoft OLE DB Provi...
-[[XML 要素を XML マップのセルに対応付ける - Microsoft サ...
-[[Excel VBAでもう頑張らない | フューチャー技術ブログ>htt...
-VarTypeで8204などが返ってくるとき
-- 配列を指定した場合は、配列(8192)+型番号の値が返ります...
--http://www.openreference.org/articles/view/460
-[[VBA100本ノック:マクロVBAの特訓|エクセルの神髄>https:...
-[[エクセルVBA・マクロ勉強参考サイトまとめ>http://mato...
-[[コントロールの誤操作でマクロが作成される>http://pc.nik...
-[[VB & VBAプログラミング>http://www.ops.dti.ne.jp/~aller...
-[[すぐに役立つVBAマクロ集>http://www.happy500z.com/]]
--[[印刷(基本型)>http://www.geocities.jp/happy_ngi/YNxv...
-[[ExcelRelaxTools Addin>http://software.opensquare.net/r...
--5年間(2009年〜)にわたって作成したマクロを汎用的、体系的...
*Tips [#z68b5d4d]
**VSCodeで開発 [#s89f373f]
-[[How to use GitHub Copilot with VBA in Excel - YouTube>...
-[[Excelマクロ(VBA)をVSCodeで編集したい | カネゴラボ>ht...
-[[VBA基礎5:VS CODEでVBAを編集(ariawase)|KIYO>https:...
-[[【VSCode】XVBAを使ってExcel VBA開発 | とあるエンジニア...
** 添付ファイルをつけてメール [#p7c0a085]
-[[EXCEL VBAでメール一括配信!添付ファイルも付けられるよ...
** 画面をキャプチャする [#d6d9263d]
-[[【VBA】ExcelVBAで実現するエビデンスツール #Windows - Q...
-[[Excel VBA を学ぶなら moug モーグ | 即効テクニック | 画...
** CSVやExcelにSQLを実行 [#ud98d858]
-[[【Excel VBA】CSVやExcelファイルにSQLを実行するツール -...
** マクロの自動実行を抑制 [#e8efef0f]
-[[マクロを実行させずにExcelファイルを開く方法。ブックオ...
--ファイルを開く→Shiftを押しながら開く
-[[[Excel VBA]マクロの自動実行を止めるには? | 日経クロ...
Application.EnableEvents = False
** 警告抑制 [#c478d36c]
Application.DisplayAlerts = False '警告抑制
** スクレイピング [#l5890357]
-[[時給1000円の事務員さんのための VBA スクレイピング>...
**アドイン関連 [#c2cf0356]
-[[【Excel VBA】リボンの自作タブをアドインファイル(xlam)...
-[[エクセルアドインとは>http://hp.vector.co.jp/authors/VA...
-[[VBAをリボンUIに追加する(インストーラー付き)>http://q...
** フィルタ系 [#ma24e96c]
-フィルタをクリアする
ActiveSheet.ShowAllData
-[[行が非表示か判定する>https://www.relief.jp/docs/excel-...
--Range.Hiddenプロパティを見る
-[[オートフィルタ適用後に表示されている行のみを対象に処理...
**今選択しているシート [#y63ffaf8]
-Application.SelectedSheets を参照する
**「名前」の全消し [#l1b923d9]
-メニューから消していると一回に1つしか消せなくて面倒なの...
for i = ActiveWorkbook.Names.Count to 1 step -1
ActiveWorkbook.Names(i).Delete
Next
**手っ取り早くExcelシートの一覧を得るには [#mb3fd2e2]
-ALT+F11を押下(VBAエディタが起動)
-CTRL+Gを押下(イミディエイトウインドウが起動)
For Each i In ThisWorkbook.Sheets: debug.print i.name : ...
をタイプしてEnterを押下
**[Esc]キーによるExcel VBAの実行中断を防止する [#jd547d...
-http://www.atmarkit.co.jp/fwin2k/win2ktips/1437disescexc...
Application.EnableCancelKey = xlDisabled
**互換性チェックのダイアログが出るのを抑制 [#r83ca239]
-Office2007で .xlsファイルを保存しようとしたときに出るダ...
Application.DisplayAlerts=False
とする
**Excelで特定の値になったときのアクション [#l5ea8ee5]
-特定のセルに特定の値が入力されたときにマクロを自動的に実...
--http://www.asahi-net.or.jp/~zn3y-ngi/YNxv9c7.html
--WorkSheet_Changeのイベントプロシージャに処理を書けば良...
**ツリービューコントロール [#d09d738e]
-[[Tree View Controlの組み込み>http://officetanaka.net/ex...
--「ツール」-「その他のコントロール」から「Microsoft Tree...
-http://www.f3.dion.ne.jp/~element/msaccess/AcTipsFrmUsin...
-http://www.tsware.jp/study/indexv10.htm
-http://www.int21.co.jp/pcdn/vb/noriolib/vbmag/9710/aki/
**VBA コンパイルエラーと実行時エラー [#xb623945]
-http://www.asahi-net.or.jp/~ef2o-inue/vba_k/sub04_200_02...
-Excel2002からある模様
-コンパイルの機能はタイプミスなどのチェックをするためのも...
**描画抑制 [#m5c0a9fc]
Application.ScreenUpdating = false
**Excelシートアルファベット順並べ替え [#b6d35ae7]
-http://park7.wakwak.com/~efc21/cgi-bin/exqalounge.cgi?pr...
**列幅を合わせる [#oe1773d9]
'ost は対象シート
ost.Activate
ost.Range(ost.Cells(1, 1), ost.Cells(osr, 8)).Columns...
-columnsに対して行うのがポイント
**AddTextBox に渡す座標の渡し方 [#mb19aab1]
-http://www.keep-on.com/excelyou/2001lng4/200102/01020461...
-Cells().Leftとか.Topとかを利用するとよい
**プログラムの同期的な実行 [#a45e7192]
-→Visual Basic(.NET以前)のページを見よ
**表示倍率を変える [#kf626c7f]
ActiveWindow.Zoom = 75
**印刷設定 右下にページ数を入れる [#ya0551da]
ActiveSheet.PageSetup.RightFooter = "&P/&N"
**印刷範囲の設定 [#b21d0bb9]
ActiveSheet.PageSetup.PrintArea = "$A$1:$N$83" 'A1形式 R...
**RangeからA1形式の文字列を得るには [#k93f604a]
str = Cells(row, col).Address
**Worksheets.AddのAfter引数などで渡すのはシート名ではない...
-シートの番目でもない。Worksheetのオブジェクトを渡さない...
'ブック末尾へのシート追加
Worksheets.Add after:=Worksheets(Worksheets.Count)
-Worksheet.Move や .Copyも同様
**CSV形式で保存する [#wd906960]
ActiveWorkbook.SaveAs Filename:="hoge.csv", FileFormat:=...
**ゴールシークを実行させる [#l2d08fb3]
'E3の値が0になるようにB3を変化させる場合
Range("E3").GoalSeek Goal:=0, ChangingCell:=Range("B3")
** VBAプロジェクトをロックする [#i2a1b4c0]
-[[VBAの「ソースコードをロック」ではソースコードをロック...
-[[VBAのプロジェクトにパスワードを設定する:VBE(Visual Bas...
--プロジェクトのプロパティで「保護」シートで設定する
** VBAファイルのデータ構造 [#h90d8d88]
-[[Evil Clippy: MS Office maldoc assistant | Outflank>htt...
--https://github.com/outflanknl/EvilClippy
--VBAのパスワード外すツール
--バイナリは用意されてないのでソースからコンパイルする必...
Make sure you have Visual Studio installed. Then execute...
csc /reference:OpenMcdf.dll,System.IO.Compression.FileSy...
-[[[MS-OVBA]: Office VBA File Format Structure | Microsof...
-[[OpenMCDF is a 100% .net / C# component that allows dev...
**実行ディレクトリ [#q05d31a9]
Application.ThisWorkbook.Path
終了行:
→Office関連メモ
→Excel関連
→C#によるExcel制御
→Visual Basic(.NET以前)
#contents
* サブトピック [#zd8f2c00]
-ExcelのVBAで図形/シェイプの処理
-ExcelVBAによるファイル処理
-ExcelVBAサンプル集
*一般 [#bbc20b28]
-[[参照設定とCreateObjectの対応リスト>http://www.thom.jp/...
-[[VBAマクロからPythonを実行する(xlwings)>https://pytho...
-vbaでEnum値の名前が適切ではありませんというエラーになる...
--Select Case 側で <Enum名>.値という書き方で参照しないと...
-[[個人マクロブック等に保存して利用するVBAの汎用コード7...
1. セル参照のA1形式・R1C1形式の表示を切り替えるマクロ
2. すべてのシートをA1セル選択状態にするマクロ
3. データ整形する
4. 赤枠背景透明図形の挿入
5. 選択画像の外枠線切替
6. アクティブブックの非表示のシートを再表示/非表示に...
7. アクティブブックのすべてのシートの保護を一括で解...
-[[「VBAでInteger型は使わない」って、知ってた!? #初心者...
-[[VBAでUTF-8のCSVを読み込む方法|分析屋>https://note.com...
--QueryTables.add
-[[【ExcelVBA】マクロでのみ編集可能なシート保護を設定する...
-[[エクセルマクロのお作法(計算用シートという諸悪の根源に...
-[[【Excelのタイパな話】初心者がExcelでVBAの代わりにOffic...
-[[VBAからSQL Serverに接続する方法(Microsoft OLE DB Provi...
-[[XML 要素を XML マップのセルに対応付ける - Microsoft サ...
-[[Excel VBAでもう頑張らない | フューチャー技術ブログ>htt...
-VarTypeで8204などが返ってくるとき
-- 配列を指定した場合は、配列(8192)+型番号の値が返ります...
--http://www.openreference.org/articles/view/460
-[[VBA100本ノック:マクロVBAの特訓|エクセルの神髄>https:...
-[[エクセルVBA・マクロ勉強参考サイトまとめ>http://mato...
-[[コントロールの誤操作でマクロが作成される>http://pc.nik...
-[[VB & VBAプログラミング>http://www.ops.dti.ne.jp/~aller...
-[[すぐに役立つVBAマクロ集>http://www.happy500z.com/]]
--[[印刷(基本型)>http://www.geocities.jp/happy_ngi/YNxv...
-[[ExcelRelaxTools Addin>http://software.opensquare.net/r...
--5年間(2009年〜)にわたって作成したマクロを汎用的、体系的...
*Tips [#z68b5d4d]
**VSCodeで開発 [#s89f373f]
-[[How to use GitHub Copilot with VBA in Excel - YouTube>...
-[[Excelマクロ(VBA)をVSCodeで編集したい | カネゴラボ>ht...
-[[VBA基礎5:VS CODEでVBAを編集(ariawase)|KIYO>https:...
-[[【VSCode】XVBAを使ってExcel VBA開発 | とあるエンジニア...
** 添付ファイルをつけてメール [#p7c0a085]
-[[EXCEL VBAでメール一括配信!添付ファイルも付けられるよ...
** 画面をキャプチャする [#d6d9263d]
-[[【VBA】ExcelVBAで実現するエビデンスツール #Windows - Q...
-[[Excel VBA を学ぶなら moug モーグ | 即効テクニック | 画...
** CSVやExcelにSQLを実行 [#ud98d858]
-[[【Excel VBA】CSVやExcelファイルにSQLを実行するツール -...
** マクロの自動実行を抑制 [#e8efef0f]
-[[マクロを実行させずにExcelファイルを開く方法。ブックオ...
--ファイルを開く→Shiftを押しながら開く
-[[[Excel VBA]マクロの自動実行を止めるには? | 日経クロ...
Application.EnableEvents = False
** 警告抑制 [#c478d36c]
Application.DisplayAlerts = False '警告抑制
** スクレイピング [#l5890357]
-[[時給1000円の事務員さんのための VBA スクレイピング>...
**アドイン関連 [#c2cf0356]
-[[【Excel VBA】リボンの自作タブをアドインファイル(xlam)...
-[[エクセルアドインとは>http://hp.vector.co.jp/authors/VA...
-[[VBAをリボンUIに追加する(インストーラー付き)>http://q...
** フィルタ系 [#ma24e96c]
-フィルタをクリアする
ActiveSheet.ShowAllData
-[[行が非表示か判定する>https://www.relief.jp/docs/excel-...
--Range.Hiddenプロパティを見る
-[[オートフィルタ適用後に表示されている行のみを対象に処理...
**今選択しているシート [#y63ffaf8]
-Application.SelectedSheets を参照する
**「名前」の全消し [#l1b923d9]
-メニューから消していると一回に1つしか消せなくて面倒なの...
for i = ActiveWorkbook.Names.Count to 1 step -1
ActiveWorkbook.Names(i).Delete
Next
**手っ取り早くExcelシートの一覧を得るには [#mb3fd2e2]
-ALT+F11を押下(VBAエディタが起動)
-CTRL+Gを押下(イミディエイトウインドウが起動)
For Each i In ThisWorkbook.Sheets: debug.print i.name : ...
をタイプしてEnterを押下
**[Esc]キーによるExcel VBAの実行中断を防止する [#jd547d...
-http://www.atmarkit.co.jp/fwin2k/win2ktips/1437disescexc...
Application.EnableCancelKey = xlDisabled
**互換性チェックのダイアログが出るのを抑制 [#r83ca239]
-Office2007で .xlsファイルを保存しようとしたときに出るダ...
Application.DisplayAlerts=False
とする
**Excelで特定の値になったときのアクション [#l5ea8ee5]
-特定のセルに特定の値が入力されたときにマクロを自動的に実...
--http://www.asahi-net.or.jp/~zn3y-ngi/YNxv9c7.html
--WorkSheet_Changeのイベントプロシージャに処理を書けば良...
**ツリービューコントロール [#d09d738e]
-[[Tree View Controlの組み込み>http://officetanaka.net/ex...
--「ツール」-「その他のコントロール」から「Microsoft Tree...
-http://www.f3.dion.ne.jp/~element/msaccess/AcTipsFrmUsin...
-http://www.tsware.jp/study/indexv10.htm
-http://www.int21.co.jp/pcdn/vb/noriolib/vbmag/9710/aki/
**VBA コンパイルエラーと実行時エラー [#xb623945]
-http://www.asahi-net.or.jp/~ef2o-inue/vba_k/sub04_200_02...
-Excel2002からある模様
-コンパイルの機能はタイプミスなどのチェックをするためのも...
**描画抑制 [#m5c0a9fc]
Application.ScreenUpdating = false
**Excelシートアルファベット順並べ替え [#b6d35ae7]
-http://park7.wakwak.com/~efc21/cgi-bin/exqalounge.cgi?pr...
**列幅を合わせる [#oe1773d9]
'ost は対象シート
ost.Activate
ost.Range(ost.Cells(1, 1), ost.Cells(osr, 8)).Columns...
-columnsに対して行うのがポイント
**AddTextBox に渡す座標の渡し方 [#mb19aab1]
-http://www.keep-on.com/excelyou/2001lng4/200102/01020461...
-Cells().Leftとか.Topとかを利用するとよい
**プログラムの同期的な実行 [#a45e7192]
-→Visual Basic(.NET以前)のページを見よ
**表示倍率を変える [#kf626c7f]
ActiveWindow.Zoom = 75
**印刷設定 右下にページ数を入れる [#ya0551da]
ActiveSheet.PageSetup.RightFooter = "&P/&N"
**印刷範囲の設定 [#b21d0bb9]
ActiveSheet.PageSetup.PrintArea = "$A$1:$N$83" 'A1形式 R...
**RangeからA1形式の文字列を得るには [#k93f604a]
str = Cells(row, col).Address
**Worksheets.AddのAfter引数などで渡すのはシート名ではない...
-シートの番目でもない。Worksheetのオブジェクトを渡さない...
'ブック末尾へのシート追加
Worksheets.Add after:=Worksheets(Worksheets.Count)
-Worksheet.Move や .Copyも同様
**CSV形式で保存する [#wd906960]
ActiveWorkbook.SaveAs Filename:="hoge.csv", FileFormat:=...
**ゴールシークを実行させる [#l2d08fb3]
'E3の値が0になるようにB3を変化させる場合
Range("E3").GoalSeek Goal:=0, ChangingCell:=Range("B3")
** VBAプロジェクトをロックする [#i2a1b4c0]
-[[VBAの「ソースコードをロック」ではソースコードをロック...
-[[VBAのプロジェクトにパスワードを設定する:VBE(Visual Bas...
--プロジェクトのプロパティで「保護」シートで設定する
** VBAファイルのデータ構造 [#h90d8d88]
-[[Evil Clippy: MS Office maldoc assistant | Outflank>htt...
--https://github.com/outflanknl/EvilClippy
--VBAのパスワード外すツール
--バイナリは用意されてないのでソースからコンパイルする必...
Make sure you have Visual Studio installed. Then execute...
csc /reference:OpenMcdf.dll,System.IO.Compression.FileSy...
-[[[MS-OVBA]: Office VBA File Format Structure | Microsof...
-[[OpenMCDF is a 100% .net / C# component that allows dev...
**実行ディレクトリ [#q05d31a9]
Application.ThisWorkbook.Path
ページ名: