ExcelVBA
フォームのエディタで メニュー>表示からタブオーダー選ぶだけ ネタ元 https://vba-beginner.com/vba1-8-3774/
With Application.FileDialog(msoFileDialogFolderPicker) .InitialFileName = "c:\" '初期フォルダ If .Show = True Then MsgBox = .SelectedItems(1) End If End With ネタ元 http://officetanaka.net/excel/vba/tips/tips39.htm http://www.excel.studio-…
シート1番目の内容をCSVファイルで出力する方法 Sub writeCSV() Dim ws As Worksheet Set ws = ThisWorkbook.Worksheets(1) Dim csvFile As String csvFile = ActiveWorkbook.Path & "\data.csv" Open csvFile For Output As #1 Dim i As Long, j As Long i …
・スプレッドシートでのセルの挿入、削除、または書式の設定。 ・別のセルの値の変更。 ・ブックでのシートの移動、名前の変更、削除、または追加。 ・計算方法や画面表示など、環境オプションの変更。 ・ブックへの名前の追加。 ・プロパティの設定およびほ…
Dim FSO As Object, TempName As String Set FSO = CreateObject("Scripting.FileSystemObject") With FSO TempName = .GetSpecialFolder(2) & "\" & .GetBaseName(.GetTempName) & ".xlsxx" End With Set FSO = Nothing ネタ元 http://officetanaka.net/exc…
Dim items() As Variant ... '2次元配列になっちゃうので1次元配列にする t100_array = Array(items) t100_array = t100_array(0)
Format(Date, "yyyymmdd") ネタ元 https://www.relief.jp/docs/excel-vba-today-yyyymmdd.html
こういうデータの場合 { "20191031":[ 1605,1878,1925,1928,2502,2503,2802,2914,3382,3402, 3407,4063,4188,4452,4502,4503,4507,4519,4523,4528, 4543,4568,4578,4661,4901,4911,5020,5108,5401,5713, 5802,6098,6178,6273,6301,6326,6367,6501,6503,6594,…
Dim fso As FileSystemObject Set fso = New FileSystemObject ' インスタンス化 Dim f As file Set f = fso.GetFile("c:\hoge.json") ' ファイルを取得 Dim JsonText As String JsonText = f.OpenAsTextStream.ReadAll ネタ元 http://officetanaka.net/exce…
QueryCloseイベントを捕まえる Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) If CloseMode = 0 Then MsgBox "[×]ボタンでは閉じられません。", 48 Cancel = True End If End Sub ネタ元 http://officetanaka.net/excel/vba/ti…
ネタ元 https://www.ka-net.org/blog/?p=4855
時間判定用 Dim nowHHMM nowHHMM = CInt(Format(Now(), "hhmm")) ネタ元 https://vbabeginner.net/vba%E3%81%A7%E7%8F%BE%E5%9C%A8%E6%97%A5%E4%BB%98%E3%81%A8%E7%8F%BE%E5%9C%A8%E6%99%82%E5%88%BB%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B%EF%BC%88…
レジストリの指定パス内にある名前と種類を列挙するWMIというのを使う Option Explicit 'WMIにて使用する各種オブジェクトを定義・生成する。 Dim oClass Dim oLocator Dim oService Dim oRegName Dim oRegType Dim i Dim sMesStr Dim sTypeStr Const HKEY_L…
LFだけだと全部一気に読み込まれちゃうSplit()使ってLFで分解するとかしましょう。 'CSVファイルの取り込み LFコードでスプリット→カンマでスプリットするパターン Sub getCSV2() Dim ws As Worksheet Set ws = ThisWorkbook.Worksheets(1) Dim strPath As S…
色々やってみたけど原因不明。クリップボードを扱うアプリ入れてたりするとなりやすいかも?ダメだったときは素直に諦めたほうが良さそう。 ネタ元 https://byte.sakura.ne.jp/code/vbaexcel%E3%82%AF%E3%83%AA%E3%83%83%E3%83%97%E3%83%9C%E3%83%BC%E3%83%8…
ESCを押したままタスクバーでExcel・VBE・他のウィンドウをランダムにクリック ネタ元 https://kotori-chunchun.hatenablog.com/entry/2019/01/13/010851
キャンセルボタン&プログレスバー付きのフォーム作って UserForm1.Show vbModeless とモードレスで表示。 あとはボタン押された時にフラグ立てるとかでキャンセル処理を実装する。 ネタ元 http://kowaza.withinit.com/vba/vba_ProgressBarForm.html
Workbook_BeforeClose は VBEの「Microsoft Excel Objects」内の「ThisWorkbook」に記述します。Auo_Close は 標準モジュールに記述します。 Workbook_BeforeClose ↓ Auto_Close この順序で実行されるのでWorkbook_BeforeCloseが先に起動されます。 使い方と…
Sub ForNextループを逆から回すサンプル() Dim i as Long For i = Sheets.Count to 1 Step -1 Debug.Print Sheets(i).Name Next i End Sub ネタ元 https://www.relief.jp/docs/excel-vba-looping-reverse-for-each-next.html
.Nextで右、.Previousで左。 ネタ元 http://www.moug.net/tech/exvba/0050161.html
vbDirectoryつけ忘れると 中身がからっぽのフォルダだとエラーになる。 逆にファイルが一つでもあるとエラーにならない。紛らわしい仕様です。 ネタ元 https://vbabeginner.net/vba%E3%81%A7%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80%E5%AD%98%E5%9C%A8%E3%83%8…
Scripting.Dictionary を使います。 Sub 支社別集計() Dim Sheet1, Sheet2 As Worksheet Const COL店舗CD = 1 ' 店舗CDの列 Const COL分類CD = 3 ' 分類CDの列 Const COL売上額 = 10 ' 売上額 Dim MaxRow As Long ' 最終行 Dim key As String ' 検索キー Dim…
こんな感じ Workbooks("B.xls").Worksheets("sheet2").Range("A2")=Application.WorksheetFunction.Sum(Workbooks("A.xls").Worksheets("sheet1").Range("B2:B3")) ネタ元 http://yutechi.hatenablog.com/entry/2012/10/22/121430
Match関数がいいらしい。 でも同じ条件の行があったら最初の行しか返してくれない見つからないと例外にあんるので on error resume next も欠かせない。 Sub match() Dim workSh, prefSh As Worksheet Set workSh = ThisWorkbook.Worksheets("Sheet1") Set p…
Sub test() Worksheets("Sheet1").Cells.Clear End Sub ネタ元 http://www.koikikukan.com/archives/2016/10/04-003333.php
Sub Sample03() Worksheets.Add End Sub ネタ元 http://officetanaka.net/excel/vba/sheet/sheet03.htm
力技 Sub Sample03() Dim ws As Worksheet, flag As Boolean For Each ws In Worksheets If ws.Name = "合計" Then flag = True Next ws If flag = True Then MsgBox "[合計]シートがあります", vbInformation Else MsgBox "[合計]シートはありません", vbIn…
Sheets(1).Delete ' 1 番目のシートを削除 Sheets("Sheet1").Delete '「Sheet1」のシートを削除 Worksheets(1).Delete ' 1 番目のシートを削除 Worksheets("Sheet1").Delete '「Sheet1」のシートを削除 ネタ元 https://www.tipsfound.com/vba/10005
Dim ws As Worksheet Set ws = ActiveSheet ' CSV のデータを取り込むシート Dim qt As QueryTable Set qt = ws.QueryTables.Add(Connection:="TEXT;D:\Tips.csv", Destination:=ws.Range("A1")) ' CSV を開く With qt .TextFilePlatform = 932 ' 文字コード…
_Initialize() で初期化する Private Sub UserForm_Initialize() 'コンボボックスに項目を追加 ComboBox1.AddItem "2009年1月" ComboBox1.AddItem "2009年2月" ComboBox1.AddItem "2009年3月" ComboBox1.AddItem "2009年4月" ComboBox1.AddItem "2009年5月" …