https://qiita.com/Q11Q/items/3cec233950158110d0e8
-- 1. 開発タブの挿入でボタンを作成
※ActiveXコントロールのものを使用する
-- 2. デザインモードONで作成したボタンをダブルクリックするとエディタが開くので下記コードを記載。デザインモードOFFで実行
Option Explicit
Private Sub CommandButton1_Click()
'画面を更新しない
Application.ScreenUpdating = False
'確認メッセージを表示しない
Application.DisplayAlerts = False
'テスト固定長ファイル作成
Call createTextFile(ThisWorkbook.Path & "\" & "a.txt")
Dim wb As Workbook
Workbooks.OpenText Filename:=ThisWorkbook.Path & "\" & "a.txt" _
, DataType:=xlFixedWidth _
, FieldInfo:=Array(Array(0, xlTextFormat), _
Array(8, xlTextFormat), _
Array(14, xlTextFormat))
Set wb = Workbooks(Workbooks.Count)
Dim r As Range
ThisWorkbook.Worksheets("Sheet1").Cells.ClearContents
Set r = wb.Worksheets("a").Range("A1").CurrentRegion
r.Copy Range("A16")
wb.Close
MsgBox "処理完了"
'確認メッセージを表示する
Application.DisplayAlerts = True
'画面を更新する
Application.ScreenUpdating = True
End Sub
'ファイル作成関数
Private Sub createTextFile(filepath As String)
Open filepath For Output As #1
Dim i As Long
Randomize
For i = 1 To 100
If i Mod 10 = 1 Then
Print #1, Right(" " & CStr(Int(10000000 * Rnd)), 8)
Else
Print #1, Right(" " & CStr(Int(10000000 * Rnd)), 8) & _
Left(CStr(Int(100000 * Rnd) & " "), 6) & _
Right(" " & CStr(Int(100000000 * Rnd)), 8)
End If
Next i
Close #1
End Sub