VBA初心者です。
仕事中、暇な時にVBAの勉強をしています。
あるファイルのフォーマットを指定されたフォーマットに変換するプログラムを作成しています。
実行後、「アプリケーション定義またはオブジェクト定義のエラーです」と出て、先に進めません。
どなたが分かる方、ご教授お願い致します。
以下ソース
Private Sub CommandButton1_Click()
' 変数定義
Dim openFileName As String
Dim priorYearBudget As String, thisYearBudget As String, increaseAnddecrease As String
Dim bigSection As String, mediumSection As String, smallSection As String
Dim fileLastRow As Long, buf As Long, index As Long
Dim head As String
' 初期化
index = 2
' ファイル名取得
openFileName = Application.GetOpenFilename("Microsoft Excelブック,*.xls")
If openFileName <> "False" Then
' ファイルが存在したらファイルを開く
Workbooks.Open openFileName
' 項目を変数に格納
' bigSection = Sheets(1).Cells(1, 3)
' mediumSection = Sheets(1).Cells(1, 4)
' smallSection = Sheets(1).Cells(1, 5)
priorYearBudget = Sheets(1).Cells(1, 6)
thisYearBudget = Sheets(1).Cells(1, 7)
increaseAnddecrease = Sheets(1).Cells(1, 8)
' ファイルの最終行を取得(データが格納されている行)
fileLastRow = ActiveSheet.Cells.SpecialCells(xlLastCell).Row
' ワークシートの追加
Worksheets.Add after:=Worksheets("Sheet1")
' セルの幅指定
Columns("A").Select
Selection.ColumnWidth = 70
Columns("B:D").Select
Selection.ColumnWidth = 13
Columns("A").Select
' 幅設定で選択されたセルを解除
range("A1").Select
' 新規に追加されたワークシートに項目を設定
Sheets(2).Cells(1, 1).Value = "勘定科目"
Sheets(2).Cells(1, 2).Value = priorYearBudget
Sheets(2).Cells(1, 3).Value = thisYearBudget
Sheets(2).Cells(1, 4).Value = increaseAnddecrease
' 元ファイルの見出しの形式を変更
For headCnt = 1 To fileLastRow
head = Sheets(1).Cells(headCnt, 1)
bigSection = Sheets(1).Cells(index, 3)
midiumSection = Sheets(1).Cells(index, 4)
smallSection = Sheets(1).Cells(index, 5)
If head <> "" Then
' 項目設定
Sheets(2).Cells(headCnt, 1).Value = "【" & head & "】"
End If
If bigSection <> "" Then
' 大区分設定
Sheets(2).Cells(buf, 1).Value = bigSection←ここでエラー発生
ElseIf midiumSection <> "" Then
' 中区分設定
Sheets(2).Cells(buf, 1).Value = midiumSection
ElseIf smallSection <> "" Then
' 小区分設定
Sheets(2).Cells(buf, 1).Value = smaillsection
End If
' Sheets(2).Cells(cnt, 1).Value = head
' head = Sheets(1).Cells(cnt, 1)
index = index + 1
buf = buf + 1
Next headCnt
' 元ファイルの金額をそのままコピー
For budgetCnt = 2 To fileLastRow
Sheets(2).Cells(budgetCnt, 2).Value = Sheets(1).Cells(budgetCnt, 6)
Sheets(2).Cells(budgetCnt, 3).Value = Sheets(1).Cells(budgetCnt, 7)
Sheets(2).Cells(budgetCnt, 4).Value = Sheets(1).Cells(budgetCnt, 8)
Next budgetCnt
Else
MsgBox "キャンセルされました"
Exit Sub
End If
End Sub
補足
エラーが発生する箇所をコメントアウトすると、正常に動作します。
よろしくお願い致します。
No.3
- 回答日時:
ちょっと実行してみましたが、
以下のところでエラーがでるようですが、ちがいますかね?
>Columns("A").Select
Aを全部選択するのであれば、自動マクロ記録すると以下のように
なりますけども。
Columns("A:A").Select
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA 請求書自動作成 3 2022/04/24 01:58
- Visual Basic(VBA) オブジェクトが見つかりません 1 2023/06/24 19:43
- Visual Basic(VBA) フォルダの場所を可変にしたいです(マクロ) 4 2023/05/11 10:00
- Excel(エクセル) マクロで最終行から上に検索を逆にしたい 1 2022/05/17 18:27
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 6 2022/06/08 12:55
- Visual Basic(VBA) 3個のfileのセルデータを1個のfileのセルに貼り付けるVBAコードですが。 1 2023/02/20 09:21
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) ExcelVBAでDo Until loopのネスト、IF文を使って一致する物と一致しない物としたい 11 2022/12/24 17:46
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBでファイルが開かれているか...
-
gccを行ってもexeファイルが生...
-
FTPの送信結果を検知したい
-
access テキストボックスの値取得
-
Access2013にてドラッグ&ドロ...
-
「パス名が無効です」の発生原因
-
batファイルでレジストリキーの...
-
Adobeのプレミアプロの書き出し...
-
Returnに対するGoSubがありません
-
PowerShellを使って関連付けら...
-
自身のファイルのコピーを作成...
-
エクセルマクロでエラーの原因...
-
エクセル「これ以上新しいフォ...
-
freadでデータがない場合の読込...
-
cube PDFについて
-
ACCESS VBAでのインポート
-
DialogBoxのリソース読み込み
-
Request.BinaryReadでのエラー
-
VBから参照できないCのDLLを使...
-
エラー:インクルードファイル ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
gccを行ってもexeファイルが生...
-
VBでファイルが開かれているか...
-
「パス名が無効です」の発生原因
-
batファイルでレジストリキーの...
-
Returnに対するGoSubがありません
-
VBから参照できないCのDLLを使...
-
PowerShellを使って関連付けら...
-
アクセスのクエリでコンパイル...
-
VB6 Dir関数で52エラー発生
-
FTPの送信結果を検知したい
-
NAS上のファイルの使用中が解除...
-
VBA ExecuteExcel4Macro 型が一...
-
access テキストボックスの値取得
-
EXCELのVBAでWORDが開いてある...
-
すでにファイルが開かれている...
-
EXCELVBAでONEDRIVE上への保管...
-
Excelファイルのマクロによる排...
-
OUTLOOK VBA 指定フォルダ内の...
-
RAR圧縮ファイル(分割)の順番が...
-
エクセルマクロでエラーの原因...
おすすめ情報