OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
締切り
済み

EXCELでVBAを使って複数の列を選びたい

  • 困ってます
  • 質問No.172672
  • 閲覧数3690
  • ありがとう数5
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 20% (12/58)

EXCELで、自分が希望する複数の列を選択し非表示にしたい。
これをマクロを使ってやりたいのですが、どうすればいいのかわかりません。
希望する列の入力はINPUTBOXを使えばいいのかなって思います。仮に開始列番号と終了列番号を入力したとして、その複数列を選択し非表示にするというコマンドが何かよくわからないのです。ちなみに、R1C1形式でもA1形式でもどちらもやりたいです。
すごく初歩的な質問だと思いますが、何卒よろしくおねがいします。
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全3件)

  • 回答No.1
レベル9

ベストアンサー率 32% (34/105)

 Columns("A:C").Hidden = True これで、A~C列は非表示になるでしょ。   マクロプログラマーの基本である、「マクロの記録」 をやってみたのですか? まず、自分がやりたい動作を「マクロの記録」で記録 してみて、記録されたマクロの処理を解析して修正す る。 これは、基本中の基本ですよ。 ...続きを読む
 Columns("A:C").Hidden = True

これで、A~C列は非表示になるでしょ。
 
マクロプログラマーの基本である、「マクロの記録」
をやってみたのですか?
まず、自分がやりたい動作を「マクロの記録」で記録
してみて、記録されたマクロの処理を解析して修正す
る。
これは、基本中の基本ですよ。
補足コメント
sizuka

お礼率 20% (12/58)

早速のご回答ありがとうございます。
ご指摘の「マクロの記録」はもちろんやりました。
ですので Columns("A:C").Hidden = True はわかりましたが、この「A」や「C」をx$、y$といった入力変数にしたいのです。単純にColumns("x$:y$").Hidden = True ではだめですよね・・・
また私は、A1形式とR1C1形式と両方ともよく使うので、R1C1形式での方法も知りたいのです(ご回答はA1形式ですよね)。
すみませんがよろしくお願いします。
投稿日時 - 2001-11-22 07:33:46
  • 回答No.2
レベル9

ベストアンサー率 41% (40/97)

ユーザーフォームを使ってみてはどうでしょうか? 次のものはユーザフォームに テキストボックスの textbox1 と textbox2 があり、 コマンドボタンの hiddenbutton というものがある場合、 hiddenbutton を押したときに指定した列 (textbox1とtextbox2に指定) を非表示にします。 A1形式とR1C1形式どちらでも指定できますが、その他のエラー処 ...続きを読む
ユーザーフォームを使ってみてはどうでしょうか?
次のものはユーザフォームに
テキストボックスの textbox1 と textbox2 があり、
コマンドボタンの hiddenbutton というものがある場合、
hiddenbutton を押したときに指定した列 (textbox1とtextbox2に指定)
を非表示にします。
A1形式とR1C1形式どちらでも指定できますが、その他のエラー処理をしていないため、
変な値(1000やZZZや%&'等)を指定するとエラーになります。

Private Sub hiddenbutton_Click()

Dim select_clm1, select_clm2 As String
Dim dummy, textvalue As Integer


If IsNumeric(textbox1) = True Then
textvalue = Val(textbox1.Value)
dummy = Int(textvalue / 26)

If dummy = textvalue / 26 Then
dummy = dummy - 1
End If

If dummy = 0 Then
select_clm1 = ""
Else
select_clm1 = Chr(dummy + 64)
End If
select_clm1 = select_clm1 & Chr(textvalue - dummy * 26 + 64)
Else
select_clm1 = textbox1.Value
End If


If IsNumeric(textbox2) = True Then
textvalue = Val(textbox2.Value)
dummy = Int(textvalue / 26)

If dummy = textvalue / 26 Then
dummy = dummy - 1
End If

If dummy = 0 Then
select_clm2 = ""
Else
select_clm2 = Chr(dummy + 64)
End If
select_clm2 = select_clm2 & Chr(textvalue - dummy * 26 + 64)
Else
select_clm2 = textbox2.Value
End If
Columns(select_clm1 & ":" & select_clm2).Hidden = True

End Sub
  • 回答No.3
レベル14

ベストアンサー率 28% (4322/15243)

Range("A:A,C:C,E:E").Select Selection.EntireColumn.Hidden = True VBAを勉強するのに、方法論として、「マクロの記録」を活用しましょう。私はこれに非常にお世話になりました。 ツール--マクロ--新しいマクロの記録でやります。 好きな列を飛び飛びに掴むには、ctrlキーを押しながら例えばA列、C列、E ...続きを読む
Range("A:A,C:C,E:E").Select
Selection.EntireColumn.Hidden = True
VBAを勉強するのに、方法論として、「マクロの記録」を活用しましょう。私はこれに非常にお世話になりました。
ツール--マクロ--新しいマクロの記録でやります。
好きな列を飛び飛びに掴むには、ctrlキーを押しながら例えばA列、C列、E列の列記号の部分をクリックします。
非表示にするには、書式--列--表示しないの操作です。
ツール--マクロ--記録終了で止めます。
そしてツール--マクロ--VisualBasicEditorをクリックし、標準モジュールをクリックするとModule1が現れ、そこをクリックすると上記のようなVBAが現れます。
このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ