人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

エクセルについて
例えばA?Zまでのフィールドが存在するシートをマクロなどで自動的に指定したフィールド列(例えばBとK)を削除したいのですが、可能でしょうか?

●質問者: hac20380
●カテゴリ:コンピュータ インターネット
✍キーワード:エクセル フィールド マクロ 存在 自動
○ 状態 :終了
└ 回答数 : 5/5件

▽最新の回答へ

1 ● きゃづみぃ
●20ポイント

Columns("A:A").Delete Shift:=xlToLeft

これで A列が削除できます。

どの列を削除するか 求められれば 上記で削除できます。


2 ● Mook
●20ポイント

やり方はいろいろあると思いますが、下記が参考になるでしょうか。


最初の例は、B列とK列を削除するコードの例です。

後の例はセルを選んで(離れた複数のセルでもOK)実行すると、セルを含んだ列を削除します。


行や列を削除すると、前の列(行)を削除すると後ろの位置が変わってしまうので後ろから処理をするのが常套手段ですが、今回のように、一度に指定しまうこともできるので、その方が混乱内科と思います。

'-------------------------------
'--- コードで指定した列を削除
'-------------------------------
Sub deleteColumns1()
'-------------------------------
 Union(Columns("B"), Columns("K")).Delete
End Sub

'-------------------------------
'--- 選択したセルを含む列を削除
'-------------------------------
Sub deleteColumns2()
'-------------------------------
 Selection.EntireColumn.Delete
End Sub
◎質問者からの返答

ありがとうございました。

さらに質問なのですが、例えばG~Tというように

連続でフィールドの削除をしたい場合は記述の方法があるのでしょうか?それともアルファベットを1つ1つ記述しなければいけないのでしょうか?


3 ● Mook
●20ポイント

コメントを有効にしていただければ、そちらでサポートいたしますが、連続した範囲であれば、下記のようにできます。

Columns("G:T").Delete

離れた列を指定する場合は、Union でまとめると簡単に記述できます。

Union(Columns("A"), Columns("D"), Columns("G:T")).Delete
◎質問者からの返答

ありがとうございました。

できました!

ここからまた質問なのですが、これを登録?(どのシートを開いてもこのマクロが実行できるようにする)にはどうしたらよいのでしょうか?

またショートカットキーでマクロを実行できたような気がするのですが・・・。

何度もすいませんがよろしくお願い致します。


4 ● きゃづみぃ
●20ポイント

>これを登録?(どのシートを開いてもこのマクロが実行できるようにする)にはどうしたらよいのでしょうか?

>またショートカットキーでマクロを実行できたような気がするのですが・・・。



http://www.eurus.dti.ne.jp/~yoneyama/Excel/middle/mid-7.html


上記のHPのようにしてマクロを自動で登録します。

登録時にショートカットキーを 割り当てます。

登録後に、VBEを開いて ソースを修正すればいいですね。

◎質問者からの返答

マクロの有効/無効の確認ダイアログが表示されないのですが・・・。

一度ファイルを閉じて再度エクセルを開いた状態

[ファイル]→[開く]でよろしかったですよね。


5 ● きゃづみぃ
●20ポイント

>マクロの有効/無効の確認ダイアログが表示されないのですが・・・。


セキュリティの設定により出ない場合があります。

今まで マクロが実行できてれば 問題ありません。

>[ツール]→[マクロ]→セキュリティ]を選択し、「中」にします。

になっている場合、警告が 出ます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ