こんにちは、エクセル365を使っています。
ブックを開いてA列を挿入して保存するマクロを書きました。
自分なりにOKだと思うのですが、保存されたブックはA列が挿入されていません。
F8で進めていくと、開いたファイルを選択する部分で進まなくなるので、開いたファイルを再度選択すれば進むので進めてみると、A列が挿入されているのが見えます。
そのまま保存してくれればOKなので最後まで進めると、保存してファイルが閉じるのですが、そのファイルを再び開いてみるとA列が挿入されていません。
自分的には謎なので、詳しい方教えて頂けませんか?
コードは以下のようなものです。
Sub ボタン1_Click()
Workbooks.Open "フォルダへのパス/〇〇CSV"
Workbooks("〇〇.CSV").Activate
Columns("A:A").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
ActiveWorkbook.Save
Workbooks("〇〇.CSV").Close
End Sub
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
同一ファイル名の通常ファイルが作成されていませんか?
csv形式で保存するためにはオプションの設定が必要であったと思います。
参考に
【ExcelVBA入門】SaveAsメソッドを使ったファイル保存方法を徹底解説!
https://www.sejuku.net/blog/67491
回答頂き、ありがとうございます。
同名のファイルは存在しないようですが、空白のセルは未入力として認識されるようですね。
勉強になりました。
No.4
- 回答日時:
こんにちは。
Excel だけをお使いの方はあまり気にしていないでしょうけど、
Access から Excel のデータをインポートする場合に
よく、その範囲が問題になります。
例えば A1:D5 にデータが入力されている(ように見える)場合に、
ずっと大きな範囲が インポートされてしまう、等です。
大抵は、離れたところに「書式」が設定されていたり、
入力したセルを バックスペースで消したりして
シートにゴミが残っている場合です。
VBA では シートの Usedrange.Select で選択される範囲が 入出力の対象になります。
質問者さんの場合では逆に
A列を挿入しただけでは、そこはまっさらで
UsedRange にふくまれません。
新しいシートに B1 から入力したのと同じ状態です。
Excel に A1 セル が 使用されていることを分からせる必要があるのです。
列を挿入したあとに
Range("A1").NumberFormatLocal = "@"
の一行を加えてください。
回答頂きありがとうございます。
CSVにはそんな特徴があるのですね。
また、対処法ありがとうございます。
もともと文字を挿入するつもりでしたので、そのマクロを書いて挿入しました。
ありがとうございました。
No.3
- 回答日時:
こんにちは、
VBAコードの問題では無いと思います。
CSVファイルに保存する際、カンマ区切りCSVで保存出来ないからではないでしょうか?
対象のCSVを手動で開き、列を挿入し、閉じてみてください。 ブックの一部の機能・・・・と言うアラートが出ると思います。
はいを押すとCSVで保存されますが、データ前の空の挿入列は削除されます。(保存されません)
手動で出来ない機能は、VBAでも例えば、FileFormat:=xlCSV などメソッドを付けても出来ないと思います。
どうにか、A列を挿入したい場合は、A1セルにダミーデータを入れれば、見かけ上できますが、CSVである意味が、、、
下記はおそらくこんな感じで
Sub ボタン1_Click()
Dim TagetBook As Workbook
Workbooks.Open ("フォルダへのパス/〇〇CSV")
Workbooks("〇〇.CSV").Activate
Columns("A:A").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("A1") = "'"
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:=""〇〇.CSV"", FileFormat:=xlCSV, Local:=True
Workbooks(""〇〇.CSV"").Close
Application.DisplayAlerts = True
End Sub
A1セルに ’ 入った列が挿入されています。
加工途中の操作での内容と思いますが、CSVファイルの先頭列に空列を挿入する意図は不明です。
No.2
- 回答日時:
それは、csvファイルだからではないでしょうか?
csvファイルだと、,(コンマ)や空白(スペース)区切りになっているはずなので、それらを入力しないと挿入されないと思います。
こちらが参考になると思います↓
https://oshiete.goo.ne.jp/qa/3763697.html
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【マクロ】webアドレスにて指定されたCSVファイル【excelソフト表示】を印刷する件 1 2023/02/15 01:52
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルのオートフィルターのしぼりをクリアーしたい 2 2022/12/24 08:36
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/02/21 11:19
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/21 13:29
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2022/03/31 12:46
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/01/26 12:00
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
”挿入”がグレーアウトして選択...
-
ExcelでAutoCadで作成した図面...
-
Power pointに写真の貼り付けが...
-
Wordに貼り付ける画像をパスで...
-
複数のエクセル・ワードファイ...
-
ムービーメーカーで画像を任意...
-
図をドラッグ&ドロップで挿入...
-
Word文書の2ページ分を1ページ...
-
Wordで、文書の中にカットを入...
-
メディヤプレイヤー9でDVDVide...
-
ファイルやフォルダーにリンク...
-
複数頁のあるPDFファイルをWord...
-
PowerPoint2000で画像がドラッ...
-
wordで別々に作ったファイルを...
-
pdfファイルに雲マーク
-
ワードのクリップアートを挿入...
-
エクセル マクロ 改変して保存...
-
拡張子がemzのファイルを開きたい
-
OpenOffice 4で書いた文章のな...
-
word上の図の赤バツ
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
”挿入”がグレーアウトして選択...
-
複数のエクセル・ワードファイ...
-
wordで別々に作ったファイルを...
-
Power pointに写真の貼り付けが...
-
複数頁のあるPDFファイルをWord...
-
手の形のカーソルアイコンについて
-
拡張子がemzのファイルを開きたい
-
AccessのOLEオブジェクトについて
-
Excel:1つのセルの中にテーブ...
-
ワード 書式を崩さずにコピー...
-
複数の画像ファイルを挿入したい
-
エクセルシートに複数の写真を...
-
ファイルやフォルダーにリンク...
-
Word ヘッダーの異なったファ...
-
TeXの図番号の後のコロンを消し...
-
Word文書の2ページ分を1ページ...
-
Wordでページを複製したい
-
pdfファイルに雲マーク
-
word上の図の赤バツ
-
画像がエクセルに直接貼り付け...
おすすめ情報