ExcelVBA
こちらで公開しているシートのReadCSVをまるっと頂きましょう。 https://www.excelspeedup.com/readcsv/
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 = "…
Sub Sample1() Dim buf As String buf = InputBox("名前を入力してください") Range("A1") = buf End Sub ネタ元 http://officetanaka.net/excel/vba/tips/tips37.htm
Workbook_Open()にやらかしマクロ書いちゃったときなどに使います。 Excelを起動する。 メニューの「開く」を選択。 「ファイルを開く」ダイアログで、開きたいファイルをクリック。 Shiftを押しながら「開く」をクリック。 ネタ元 https://stabucky.com/wp/…
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 …
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 W…
Debug.Print Range("A1").Row & "," & Range("A1").Column ネタ元 https://website-note.net/vba/change-range-to-cells/
Range("E1").PasteSpecialなどするときは '描画停止 Application.ScreenUpdating = Falseはしないようにしましょう。
Offset()使う Sub Sample1() Dim FoundCell As Range Set FoundCell = Range("A:A").Find("田中") If Not FoundCell Is Nothing Then MsgBox FoundCell.Offset(0, 1) End If End Sub ネタ元 https://www.moug.net/tech/exvba/0050161.html
Sub Sample2() Dim FoundCell As Range ''またはバリアント型(Variant)とする Set FoundCell = Range("A1").CurrentRegion.Find(What:="土屋") If FoundCell Is Nothing Then MsgBox "検索に失敗しました" Else FoundCell.Select End If End Sub ネタ元 http…
数字+英字ならVal()を使うと数字部分だけ取れる Sub Sample1() MsgBox Val("123ABC") End Sub英字+数字ならひっくり返してから数字部分だけとり、Replaceで数字部分だけ消しちゃう dim moji moji = "ABC123" MdgBox Replace(moji, StrReverse(Val(StrReverse…
Sub JoinTest() Dim ar(2) As String ar(0) = "aa" ar(1) = "bbb" ar(2) = "cccc" Dim s As String s = Join(ar, ",") Debug.Print s End Sub ネタ元 https://vbabeginner.net/vba%E3%81%A7%E9%85%8D%E5%88%97%E3%81%AE%E5%85%A8%E8%A6%81%E7%B4%A0%E3%82%92…
Dim v v = Split("111,2222,33333", ",") ネタ元 https://vbabeginner.net/vba%E9%96%A2%E6%95%B0%EF%BC%9A%E6%8C%87%E5%AE%9A%E6%96%87%E5%AD%97%E3%81%A7%E5%88%86%E5%89%B2%E3%81%97%E3%81%A6%E9%85%8D%E5%88%97%E3%81%AB%E3%81%99%E3%82%8B%EF%BC%88spli…
Eraseステートメントがある Erase 配列名 ネタ元 https://uxmilk.jp/50104
ReDim Preserveしていく。 Sgn()で未初期化か判定できる Dim arr() As String For i = 0 To 4 If Sgn(arr) = 0 Then '初期化されていないので初期化 ReDim Preserve arr(0) Else '初期化されているので要素を追加 ReDim Preserve arr(UBound(arr) + 1) End I…
Join()使えば一発。 Dim arr(1 To 3) As String arr(1) = "東京" arr(2) = "大阪" arr(3) = "名古屋" MsgBox Join(arr) ネタ元 https://www.relief.jp/docs/excel-vba-show-msgbox-array-values.html
Excelシートで開発開いて、ツール>参照 でアドインを参照するように設定あとはアドイン内の関数呼ぶだけ
・[プロパティ] ウィンドウで、[ liststyle ] プロパティを選択します。 ・ドロップダウン矢印をクリックして、使用可能なスタイルの一覧を表示します。 ・一覧から [Option] を選択します。 ListstyleプロパティをOptionに設定すると、複数**** 選択のプロ…
「ツール」メニューの「参照設定」のところで Microsoft HTML Object Library Microsoft XML, v6.0 を追加して使ってね重い環境だとhtmlDoc.writeの後、読み込み終わってなくてエラーになることがあるみたい。リトライ処理するといい感じ。 Sub HTTP通信() D…
「ツール」メニューの「参照設定」のところで Microsoft HTML Object Libraryを追加しよう ネタ元 https://oshiete.goo.ne.jp/qa/8929170.html
ループして SelectedをTrue/Falseする Private Sub cmd全選択_Click() Dim iintLoop As Integer With Me!lstResult For iintLoop = 0 To .ListCount - 1 .Selected(iintLoop) = True Next iintLoop End With End Sub Private Sub cmd全解除_Click() Dim iint…
LBound関数…引数に指定した配列の、最も小さい要素番号を返す UBound関数…引数に指定した配列の、最も大きい要素番号を返すこの関数をうまく使う Sub Sample2() Dim tmp As Variant, i As Long tmp = Split("123,田中,tanaka", ",") For i = LBound(tmp) To …
ターゲットとなる「URL」のページはIEのドキュメントモードがIE8以下だとgetElementsByClassNameは未対応とのこと。getAttribute("className")でクラス名をしらべながら処理するしかない例 .... Dim httpReq As XMLHTTP60 Set httpReq = New XMLHTTP60 httpR…
ツールバー>編集にコメントブロックの機能あるけど 面倒なのでツールバーのユーザー設定で使いやすくしましょう。 ネタ元 http://officetanaka.net/excel/vba/tips/tips04.htm
代替の関数がある Function IIf(Expression, TruePart, FalsePart) ネタ元 https://vbabeginner.net/vba%E3%81%AE%E4%B8%89%E9%A0%85%E6%BC%94%E7%AE%97%E5%AD%90%EF%BC%88iif%E9%96%A2%E6%95%B0%EF%BC%89/
Excelの全角->半角変換関数であるASC()はVBAだと指定した文字の文字コード (Shift_JIS) を返す関数なので注意。 StrConv(文字列,vbNarrow); ネタ元 http://officetanaka.net/excel/vba/function/StrConv.htm
'// カンマ区切り文字列に変換 s = Format(n, "#,###,###") ネタ元 https://vbabeginner.net/vba%E3%81%A7%E6%95%B0%E5%80%A4%E3%82%92%E6%96%87%E5%AD%97%E5%88%97%E3%81%AB%E5%A4%89%E6%8F%9B%E3%81%99%E3%82%8B/
Val()だとカンマがあると思ったような変換にならない。 CDbl()ならOK。 ネタ元 http://hensa40.cutegirl.jp/archives/3300
Dim ans As String str = InputBox(表示文字列, タイトル文字列, デフォルト値) ネタ元 https://www.officepro.jp/excelvba/dialog/index5.html
'確認メッセージを表示させない Application.DisplayAlerts = False '保存 ActiveWorkbook.Save 'Excelを終了する Application.Quit ネタ元 https://excel-excel.com/tips/vba_185.html