![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
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ファイルが生...
-
batファイルでレジストリキーの...
-
アクセスのクエリでコンパイル...
-
NAS上のファイルの使用中が解除...
-
エクセルマクロでエラーの原因...
-
すでにファイルが開かれている...
-
Access2013にてドラッグ&ドロ...
-
freadでデータがない場合の読込...
-
RAR圧縮ファイル(分割)の順番が...
-
VBから参照できないCのDLLを使...
-
Returnに対するGoSubがありません
-
アクセスでイベントのロジック...
-
ExcelVBAで既に開いてるwordを...
-
fcloseで発生するエラーについて。
-
エラー:インクルードファイル ...
-
画像読み込み失敗の判定
-
VB6 Dir関数で52エラー発生
-
構造体をランダムファイルに書...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBでファイルが開かれているか...
-
batファイルでレジストリキーの...
-
Returnに対するGoSubがありません
-
VBから参照できないCのDLLを使...
-
「パス名が無効です」の発生原因
-
access テキストボックスの値取得
-
アクセスのクエリでコンパイル...
-
PowerShellを使って関連付けら...
-
freadでデータがない場合の読込...
-
【COBOL】read文でエラー
-
gccを行ってもexeファイルが生...
-
ファイルクローズ(fclose)でエ...
-
VB6 Dir関数で52エラー発生
-
ACCESS VBAでのインポート
-
NAS上のファイルの使用中が解除...
-
FTPの送信結果を検知したい
-
エクセルマクロでエラーの原因...
-
Access2013にてドラッグ&ドロ...
-
EXCELのVBAでWORDが開いてある...
-
fcloseで発生するエラーについて。
おすすめ情報