Excel VBA 質問スレッド №719 (解決済)

値のある最終列以降の列のを削除したい

投稿者 : わっきー     投稿日時 : 2022/05/13(Fri) 17:28:19     OS : Windows 10     EXCEL : Excel 2016
タイトルの件ですが最終的にcsvファイルに出力する為
空白の列も削除したいのですが力不足の為に上手くいきません。

dim lastColumn

lastColumn = Cells(1、1).End(xlToRight)

スポンサーリンク
[返信 1] Re : 値のある最終列以降の列のを削除したい
投稿者 : てらてら     投稿日時 : 2022/05/14(Sat) 10:08:48
こんにちは。

>lastColumn = Cells(1,1).End(xlToRight)
これですが、最後の.Columnが抜けています。
また、成功しても途中の空白列の手前の列を取得してしまい上手くいきません。

lastCol = Cells(1, Columns.Count).End(xlToLeft).Column

このようにすると、一旦右の端に飛んで戻ってくる感じで、最終列を取得できます。
その後、以下のコードのように空白列を削除します。

コツとしては、最終列から1列目へループすることです。

今回は最終列の取得でしたが、"Excel VBA 最終行"で検索すると、意味不明なコードの詳しい解説が見つかると思いますのでググってみてください。


Sub macro()

    Dim lastCol As Long, i As Long
    
    '空白も含めた最終列を得る。
    lastCol = Cells(1, Columns.Count).End(xlToLeft).Column
    
    '列を削除するときは、最終列から1列目へループ
    For i = lastCol To 1 Step -1
        If Cells(1, i) = "" Then    '途中の空白列を削除
            Columns(i).Delete
        
        End If
    Next i

End Sub

[返信 2] Re : 値のある最終列以降の列のを削除したい
投稿者 : わっきー     投稿日時 : 2022/05/16(Mon) 11:54:04
解答いただきましてありがとうございました。

なかなか難しいですか頑張って勉強させて頂きます。
ありがとうございました。

当掲示板について
  • Excel VBA に関する掲示板です。Excel VBA に関する質問や疑問、それに対する解決方法など気軽に投稿してください。
  • 記事内ではHTMLのタグは使用できません。
  • 記事は一度投稿すると修正できません。内容を訂正したい場合は返信で対応してください。
  • Sub〜End Sub、Function〜End Function は自動的にプログラムコードとみなし、枠で囲って見やすくします。
  • Excel VBA とは関係ないことや、他人が不快に思うようなことなど、管理人が適当でないと判断した記事は削除する場合があります。
スポンサーリンク
返信入力フォーム
お 名 前  :
内  容   :

ステータス  :

認証コード  : キャプチャ画像 




( 処理日時 : 2025-09-08 14:17:18 )
タイトルとURLをコピーしました