
エクセルマクロを使用しての行削除の方法についてお伺いします。
現在業務でエクセルに画像内の文字データを入力しています。
入力データは列ごとに半角全角のきまりがあり、
データが入力された行列以外はすべて削除しそれをCSVで保存という流れになっているのですが、
今のところ関数を入れて半角全角チェックをし、それが済んだあとに、
実際のデータ部分以外の箇所をすべて削除し保存しています。
調べたら半角全角はvbNarrowとvbWideという関数があると知り、
列については、特定位置から始まるのでマクロの記録で対応できています(列項目は予め数が決まっていますので)。
ただ、行については画像にどれだけデータがあるかで開始位置が変わってきます。
***以下は試したマクロ記録です。***
Rows("9:9").Select→何も知らずに「"9:9"」の所で"開始位置の変数:開始位置の変数"としエラーで迷ってます。
Range(Selection, Selection.End(xlDown)).Select
Selection.Delete Shift:=xlUp
Columns("F:F").Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Delete Shift:=xlToLeft
不特定の行から最終行までを選択削除する方法をご存じの方がいましたらご教授お願いいたします。
上記のマクロ使用環境はExcel2003です。
No.1ベストアンサー
- 回答日時:
>vbNarrowとvbWideという関数があると
ありません。それはStrConvに渡す定数
です。正規表現で調べるか、文字数と
バイト数の違いで判断します。
Declare Function lstrlenA Lib "KERNEL32" _
(ByVal 文字列 As String) As Long
Function 文字種判定(ByVal 文字列) As Long
Dim 文字数 As Long
Dim バイト数 As Long
文字数 = Len(文字列)
バイト数 = lstrlenA(文字列)
If 文字数 = バイト数 Then
文字種判定 = 0 '★全部半角の戻り値
ElseIf 文字数 * 2 = バイト数 Then
文字種判定 = 1 '★全部全角の戻り値
Else
文字種判定 = 2 '★全角半角混在の戻り値
End If
End Function
ターゲットにデフォルトを使わず、明示的に
指定するべきです。また、直定数の使用は
避ける方が良いでしょう。
Dim シート As WorkSheet
Dim 開始行 As Long
Dim 最終行 As Long
Dim 削除列 As Long
'★シートを設定する
Set シート = ThisWorkbook.WorkShets("Sheet1")
開始行 = 9 '★ここは何らかの方法で決める
'★最終行を求める
最終行 = シート.Cells.SpecialCells(xlCellTypeLastCell).Row
'★開始行から最終行までを削除
シート.Rows(Cstr(開始行) & ":" & cstr(最終行)).Delete
'★特定の列を削除
削除列 = 6 '★ここは何らかの方法で決める
シート.Columns(削除列).Delete
アドバイスの返事が遅れてすいません。
行削除ですが、教えていただいた方法で試してみます。
最終行を求める方法も参考になりましたので、活用させていただきます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) マクロで最終行を取得してコピーしたい 3 2022/04/06 19:07
- Visual Basic(VBA) データのある範囲を選択するVBAについて 2 2022/09/03 00:20
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- Excel(エクセル) エクセルのVBAにショートカットキーの割り当て 3 2022/07/13 14:19
- Excel(エクセル) 表示形式、文字列セル(列)に数式を入力するには マクロ 1 2022/09/18 10:53
- Visual Basic(VBA) Excelにて、シート1の行を削除するとシート2のシート1と同じ番号の行も削除したい 3 2022/05/08 04:24
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Excel(エクセル) エクセル VBA For Next 繰り返しの書き方を教えてください 6 2022/09/01 14:11
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
複数セルの入れ替え方法 excel vba
-
EXCELマクロで自動改行
-
【VBA】条件に一致しない行を削...
-
EXCEL2007マクロ/オートフィル...
-
【VBA】条件に一致しない行を削...
-
数値に見えるものはすべて数値...
-
Excel97 指定した行だけマク...
-
VB.net
-
ピポットテーブルのマクロについて
-
【マクロ】A列最終行までを、カ...
-
WPSOffice_マクロの有効化について
-
VBAで保存しないで閉じると空の...
-
複数のマクロボタンをまとめて...
-
セルの中身を配列の中に入れた...
-
Excelのマクロでボタンを押すと...
-
エクセル関数>参照ファイル名...
-
【Excel VBA】マクロでExcel自...
-
Excel マクロの編集がグレーに...
-
EndモードにしないEndキー
-
個人用マクロのショートカット...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
マクロで最終行を取得してコピ...
-
数値に見えるものはすべて数値...
-
【VBA】条件に一致しない行を削...
-
エクセルのデータがない行には...
-
エクセルで空白行を削除する ...
-
Excel VBAでオートフィルタで抽...
-
VB.net
-
【VBA】条件に一致しない行を削...
-
Excel マクロ 検索結果を別シ...
-
列から特定の文字列検索→該当以...
-
【マクロ】A列最終行までを、カ...
-
マクロにて指定の文字間の文字...
-
Excel97 指定した行だけマク...
-
EXCEL VBAでA列にある空白行よ...
-
vbaエクセルマクロについて she...
-
【至急】Excel 同一人物の情報...
-
エクセルで階層図を作る方法
-
各個体に対する平均値の自動計...
-
テキストファイル読み込みにお...
-
excel2021で実行できないマクロ...
おすすめ情報