excelVBAで一時(テンポラリ)ファイル名を取得する

Sub Sample05()
    Dim FSO As Object, TempName As String
    Set FSO = CreateObject("Scripting.FileSystemObject")
    ''新しいブックを挿入します
    With Workbooks.Add
        ''作業用ブック名を生成します
        With FSO
            TempName = .GetSpecialFolder(2) & "\" & .GetBaseName(.GetTempName) & ".xlsx"
        End With
        ''挿入したブックに名前を付けて保存します
        .SaveAs TempName
        MsgBox .FullName & vbCrLf & "という名前で保存しました", vbInformation
    End With
    Set FSO = Nothing
End Sub

ネタ元

excelvbaでファイルに書き込む

Public Sub sample()
    Dim intNo As Integer
    Dim strFileName As String

    ' テキストを出力するファイルを設定
    strFileName = "C:\tmp\sample.txt"

    ' ファイルの書き込み
    intNo = FileSystem.FreeFile()           ' フリーファイルNoを取得
    Open strFileName For Output As #intNo   ' 上書きモードでファイルをオープン
    Print #intNo, "ABCDE"
    Print #intNo, "あいうえお"
    Close #intNo                            ' ファイルをクローズ

End Sub

ネタ元

excelVBAで連想配列

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 c, r As Long
    
    Set dicT = CreateObject("Scripting.Dictionary") ' 連想配列の定義
    
    Set Sheet1 = Worksheets("売上明細") ' 明細シート
    Set Sheet2 = Worksheets("売上集計") ' 集計シート
    
    MaxRow = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row ' 最終行を求める
    
    ' 売上明細を連想配列へ読み込む
    With Sheet1
        For r = 2 To MaxRow ' 最終行
            key = .Cells(r, COL店舗CD).Value & .Cells(r, COL分類CD).Value ' 店舗CD & 分類CD
            dicT(key) = dicT(key) + .Cells(r, COL売上額).Value ' 売上額
        Next
    End With
        
    ' 集計シートへの書き出し
    With Sheet2
        For c = 3 To 12 ' 列
            For r = 4 To 12 ' 行
                key = .Cells(2, c).Value & .Cells(r, 1).Value ' 店舗CD & 分類CD
                .Cells(r, c) = dicT(key)
            Next
        Next
    End With
End Sub

Dictionaryオブジェクトのリファレンスはリンク先で


ネタ元