前提・実現したいこと
VBAで転換マクロツールを創っています。
いま、画像に示すようにVBAでシート1のA7、C7、シート2のA2の3つのセルの数値を合算させて、
シート2のA2のセルに"20200301"と表示するVBAを組んでいます。
以前教わったyyyymmddの8桁表示のVBAを改変してセルを代入してもエラーを吐いて正常に動作しません。
原因・改善法などおわかりなれば教えてください。
発生している問題・エラーメッセージ
実行時エラー'438' オブジェクトは、このプロパティまたはメソッドをサポートしていません。
該当のソースコード
VBA
1Public Sub FileUpload() 'ファイル選択ダイアログモジュール 2 3 Dim fType As Variant 4 Dim fPath As Variant 5 Dim str As String 'yyyymmdd出力用 6 7'※選択できるファイルの種類はエクセルファイルのみ 8 fType = "Microsoft Excelブック,*.xls?" '※ 9 10'ファイル参照ダイアログの表示 11 fPath = Application.GetOpenFilename(fType, , "") 'fType = fPath。 12 Debug.Print fPath 13 If fPath = False Then 14'ダイアログでキャンセルボタンが押された場合は処理を終了します 15 Exit Sub 'Endで強制終了はよろしくない 16 End If 17 18 Dim Target As Workbook 'コンバートモジュール 19 Set Target = Workbooks.Open(fPath) 20 21 'これをセル抜き出しから数値抜出に変更⇔循環小数エラーの解決。 22 Target.Sheets(1).Range("G2").Copy ThisWorkbook.Sheets(2).Range("A2") 23 Target.Sheets(1).Range("H2").Copy ThisWorkbook.Sheets(2).Range("A3") 24 25 'ThisWorkbook.Sheets(2).Range("A2") = FormatYYYYMMDD(Sheet1!A7, Sheet1!C7, A2) 26 'ThisWorkbook.Sheets(2).Range("A3") = FormatYYYYMMDD(Sheet1!A7, Sheet1!C7, A3) 27 28 ThisWorkbook.Sheets(2).Range("A2:A3").Value = ThisWorkbook.Sheets(2).Range("A2:A3").Value '数式→数値変換 29 ThisWorkbook.Sheets(2).Range("A2:A3").NumberFormatLocal = "yyyymmdd" 30 31 'yyyymmdd変換、そして半早のスケジュール登録すれば完成。 32 33 Target.Close '※開いたブックは閉じておく 34 Set Target = Nothing '念のため、変数開放 35 36Dim sh As Worksheet 'csv保存モジュール 37Set sh = Worksheets(2) 38sh.SaveAs Filename:="C:\Work\出力先\test.csv", FileFormat:=xlCSV 39 40str = FormatYYYYMMDD(Sheet1!A7, Sheet1!C7, A2) 'str = FormatYYYYMMDD(2020, 3, 1)をstr = FormatYYYYMMDD(Sheet1!A7, Sheet1!C7, A2)に改変してエラーを吐く。 41MsgBox (str) 'yyyymmdd出力用 42 43End Sub 44 45Public Function FormatYYYYMMDD(ByVal yyyy As Variant, ByVal mm As Variant, ByVal dd As Variant) As String 46 FormatYYYYMMDD = Format(yyyy * 10000 + mm * 100 + dd, "00000000") 47End Function 48
試したこと
VBAで&の記述を使えば良いのか、変数の方が違うのかと色々試行錯誤しているのですが詰まっています。
もしおわかりになればお教え頂けると助かります。
よろしくお願いします。
補足情報(FW/ツールのバージョンなど)
Excle2016,Windows10

回答4件
あなたの回答
tips
プレビュー