TIL

Today I Learned. 知ったこと、学んだことを書いていく

VBA

ADOでExcelファイルを読み込んだ時に文字列がNullになってしまうときの対処法 - VBA

VBA

結論 Extended PropertiesにIMEX=1を追加する! 解説 Excelファイルを読み込むとき、1行目がヘッダーで2行目以降がデータである場合、そのままデータベースとして読み込むことができるため、すごい便利。 でも、仕様バグでしっかりとデータが存在するにも…

ADOを使って、CSVファイルを読み込む - VBA

VBA

ADOを使い、CSVファイルにアクセスすることで、CSVファイルをDBのテーブルとして扱うことができるようになる。 ADOでの接続は以下の手順で行う プロパイダを指定する アクセスするファイルの格納フォルダの指定 そのほかの設定をする 接続開始 SQLの実行 ヘ…

フォルダが存在しているか - VBA

VBA

Dir関数を使用する。第2引数にvbDirectoryを指定する 存在しない場合には空文字を返す フォルダが存在しているか - VBA 参考文献 Office TANAKA - Excel VBAファイルの操作[ファイルの存在を調べる]

現在の日付を取得する - VBA

VBA

Dim now As String now = Date MsgBox now 参考文献 Office TANAKA - Excel VBA Tips[日付・時刻を取得するときの落とし穴]

文字列切り取り - VBA

VBA

Right、Left、Mid Rightは右から切り取り、Leftは左から切り取り、Midは指定位置から指定した文字数だけ切り取り 使用例:パスのファイル名を取得 fileName = Mid(path, InStrRev(path, "\") + 1) 参考文献 Excel VBA 入門講座

列名からアルファベットを取得 - VBA

VBA

Sub Sample2() Dim num As Long, buf As String num = InputBox("列の数字を入力してください") buf = Cells(1, num).Address(True, False) buf = Left(buf, InStr(buf, "$") - 1) MsgBox buf End Sub 参考文献 数値から列番号を取得する:Excel VBA|即効テ…

UTF-8 でファイルを保存する - VBA

VBA

VBAでD:\temp\hello.txtにUTF-8で保存するのは次のようにする With CreateObject("ADODB.Stream") .Charset = "UTF-8" .Open .WriteText "こんにちは", 1 .WriteText "世界", 1 .SaveToFile "C:\temp\world.txt", 2 .Close End With ○解説 CreateObject("ADO…

For内でのCollectionの初期化 - VBA

VBA

For内でCollectionを宣言・初期化するときには Dim testList As New Collection と1行で記述するのではなく、以下のように2行で記述すること Dim testList As Collection Set testList = New Collection 最初みたいに1行で記述したら、2ループ目以降で1ルー…

Functionで配列を返す - VBA

VBA

配列を返す関数の記述の仕方 Function sayHelloWorld() As String() Dim testArr(1) As String testArr(0) = "Hello" testArr(1) = "World" sayHelloWorld = testArr End Function 参考文献 excel vba 関数の引数と戻り値を配列にする - yoshiya_naの日記

宣言と代入を1行で記述 - VBA

VBA

Java のように int a = 1;という風にVBAでも記述する方法 Dim testStr As String: testStr = "Hello!" Dim 変数名 As データ型: 変数名 = 値 と記述することで1行で書ける! スマート!! 参考文献 【VB系】変数の宣言と初期化を1行で書く(VB.NET,VBA,VBScr…