Dim Ws As WorksheetDim Ds As WorksheetDim Gyo2 As Long Dim Mydata As VariantDim Mydata1 As VariantDim Mydata2 As VariantDim Mydata3 As VariantDim MyArray() As VariantDim MyRow() As LongDim Item As LongDim Idx As Long Set Ws = Wb.Sheets("A"…
各CSVのデータを1行ずつ読み取る予定で作成したVBA Set Wb = Workbooks(WBNAME)Set Ws = Wb.Sheets("A")Set Data_Sh = Wb.Sheets("B") Gyo2 = Ws.Cells(Rows.Count, 3).End(xlUp).RowData_Sh.Visible = True Application.ScreenUpdating = False 'I取得したC…
Sub 連想配列で複数の情報を得たい場合()'************事前準備*************************** '参照設定:Microsoft Scripting Runtime '*********************************************** 'Dim YourDic As Dictionary 'Set YourDic = New Dictionary '******…
Sub 集計案動作確認済()'***********************************************'データシートにある装置を格納'***********************************************Dim XX As LongDim YY As LongDim AA As LongDim Elem As LongDim YourDs As WorksheetDim Yourabc…
Sub 不足リスト作成() '***********************************************'管理表シートにないabcd装置を追加作成'***********************************************Dim Ws As WorksheetDim Myabcd() As VariantSet Ws = Sheets("2026")Dim XX As LongXX = W…
Sub 管理表更新()'***************************************'集計シート、データシートの設定'***************************************Dim XX As Long, YY As LongSet Mydata = Sheets("2026")Set Yourdata = Sheets("japan") XX = Mydata.Cells(Rows.Count…
Sub 連想配列SUMIF()'************事前準備*******************'参照設定:Microsoft Scripting Runtime'*************************************** '***************************************'集計シート、データシートの設定'*****************************…
Sub 参照設定をしない連想配列Currentregionを使う() '***************************************'タイマーをセット'***************************************Dim startTime As Single, endTime As Single startTime = Timer'*******************************…
Sub 連想配列そのまま使える()'参照設定:Microsoft Scripting Runtime'タイマーをセットDim startTime As Single, endTime As Single startTime = Timer'集計表のホスト名を配列に格納Dim XX As LongDim arrSyukei As VariantSet Smg = Sheets("Sheet2")Set…
Sub 連想配列Currentregionを使う()'************事前準備*******************'参照設定:Microsoft Scripting Runtime'*************************************** '***************************************'タイマーをセット'*****************************…
Sub ForNextによる処理()'タイマーをセットDim startTime As Single, endTime As Single startTime = Timer '集計表のホスト名を配列に格納Dim XX As LongDim arrSyukei As VariantSet Smg = Sheets("Sheet2")Set Myedge = Sheets("Sheet1") XX = Smg.Cells(…
Sub 並び替え()Dim XX As Long If Ws.FilterMode = True ThenWs.ShowAllDataEnd If XX = Ws.Cells(Rows.Count, 3).End(xlUp).Row Ws.Rows("4:" & XX).Select With Ws.Sort With .SortFields .Clear .Add Key:=Ws.Range("A5"), Order:=xlAscending .Add Key:=…
Sub オートフィルタ抽出データを別シートにコピー() Dim Sh1 As WorksheetDim Sh2 As Worksheet 'シートを変数へ格納 Set Sh1 = Sheets("2025") Set Sh2 = Sheets("勝") 'フィルターでデータ抽出 Sh1.Range("A2").AutoFilter 2, "勝" 'フィルター抽出結果を…
Sub test()Dim Myrange As RangeDim uniqueArray As VariantDim ii = Sheets("Sheet3").Cells(Rows.Count, 1).End(xlUp).Row Set Myrange = Sheets("Sheet3").Range("A1:A" & i) Dim myDic As Object Set myDic = CreateObject("Scripting.Dictionary") For …
Sub 数字分割()Dim KaisenidDim AADim BunkatuKaisenid = Replace(Sheets("Sheet1").Cells(1, 1), "-", "") For AA = 1 To Len(Kaisenid) Bunkatu = Mid(Kaisenid, AA, 1) Sheets("Sheet1").Cells(2, AA) = Bunkatu Next AAEnd Sub
Sheet1シートA列のセルの内容をシート名にして末尾にシートを順次追加し 同じ文字列があった場合はシート名変換を行わず行数分のシートを作成する Sub シート追加()Dim i, jOn Error Resume Nextj = Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row Fo…
CountBlank関数を使って対象のレコードに情報が入っているか調べる Sub AAA()MsgBox WorksheetFunction.CountBlank(Range(Cells(1, 1), Cells(1, 8)))End Sub
ブックを開いたとき、自動実行させるVBAには イベントマクロのWorkbook_Openと通常のAuto_Openがあります。Workbook_Openは、VBE「Microsoft Excel Objects]内の「ThisWorkbook」に記述し、一方、Auto_Openは標準モジュールに記述します。
繰り返し作業の中で別の場所を参照したい場合 For a = 25 To 37 Step 2 Select Case a Case 25: b = 7 Case 27: b = 11 Case 29: b = 15 Case 31: b = 17 Case 33: b = 19 Case 35: b = 21 Case 37: b = 23 End Select
ユーザーフォームで指定したセルの値がが該当の値の時置き換える Check_Row = Val(Label10)Check_Column = Val(Label11) Sheets(1).Cells(Check_Row, Check_Column).Replace What:="△", Replacement:="▲" Sheets(1).Cells(Check_Row, Check_Column).Replace …
以下のイベントマクロを管理したいシートに記述します。 記録用に別シート(例では「書換履歴」シート)を作成します。 '******************************************************** Private Sub Worksheet_Change(ByVal Target As Range)'*****************…
幹(ステム)と葉(リーフ)と呼ばれる2つの部分に値をわけて表しヒストグラムに似た図になる。 今日(2020.10.22)現在のパ・リーグ規定打席以上(26名)の打撃成績を見ると 0.355 0.29 0.278 0.259 0.245 0.212 0.344 0.283 0.277 0.258 0.241 0.34 0.282…
データ内の数字を①、②・・・や➊、➋・・・Ⅰ、Ⅱ・・・で表示して目立つようにしたい場合、文字として扱うと①、②と順番に変えていくことが面倒です。 そこでUnicodeを使いたいのですがUnicode表は16進数で表示されているのが多く変数として扱うにはハードルが高…
複数の人が操作(読み書き)をするようなファイルをVBAを使うとフィルタがかけられて思わぬエラーに遭遇したり書き込み消し込みが正常に機能しなかったり不具合が発生することがある。 一番シンプルで簡単なものはVBA操作の最初に3行を記入しておけば不具合…
10進法で作業が進めにくい場合もあります。意外と使い道があるので覚えてください。 まず、Excelでは 答え「1」のところの数式は、 =MOD(A2,B2) <R1C1参照形式:=MOD(RC[-2],RC[-1]) > 割られる数 割る数 余り 10 3 1 VBAでは下のように記述…
Excelは通常、A1参照形式で扱うことが多いがそれ以外にA列、B列ではなく列表示も数字のR1C1参照形式がある。 昭和世代にはロータス形式、マルチプラン形式のほうが馴染みやすいが今では通じない死語かも知れない。 VBAでは変数を扱う場合、数字のほうが変数…
計算式が無効にならないように空白を考慮した計算式例 1 2 3 4 1 出身県 人数 年俸 平均年俸(万円) 2 岐阜 1 1,800 =IF(RC[-2]<>"",RC[-1]/RC[-2],"") 3 静岡 4 32,770 =IF(RC[-2]<>"",RC[-1]/RC[-2],"") 4 愛知 =IF(RC[-2]<>"",RC[-1]/RC[-2],"") 5 三重 …
VBA DateAdd関数 指定した時間間隔を日付に加算してその日付を含む Variant (Date) を返します。 使用例 ・販売予測と在庫数から在庫がなくなる日を予測します。 ・在庫が無くなる予測日から補充発注をする日を割り出します。 DateAdd(interval, number, dat…
Excel VBAを使ってデータベースを集計するとき、レコードの最終行を知る必要がある。 私が最初に覚えたのがCurrentRegionプロパティで、例えば GYO = Sheets("Data").Cells(1, 1).CurrentRegion.Rows.Count Dataシートの1行目からデータが入っているものに…
データの内容に応じてセルの色を変えたい場合、VBAで処理をしなくてもExcelの「条件付き書式」で設定をしておけばいい。とは言えExcelデータで作業をしていると「条件付き書式」ではないほうがいいこともある。そんなときに活用したい。 例えば、VBAでデータ…