最新閲覧日:

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

A 回答 (3件)

Range("A:A,C:C,E:E").Select


Selection.EntireColumn.Hidden = True
VBAを勉強するのに、方法論として、「マクロの記録」を活用しましょう。私はこれに非常にお世話になりました。
ツール--マクロ--新しいマクロの記録でやります。
好きな列を飛び飛びに掴むには、ctrlキーを押しながら例えばA列、C列、E列の列記号の部分をクリックします。
非表示にするには、書式--列--表示しないの操作です。
ツール--マクロ--記録終了で止めます。
そしてツール--マクロ--VisualBasicEditorをクリックし、標準モジュールをクリックするとModule1が現れ、そこをクリックすると上記のようなVBAが現れます。
    • good
    • 1

ユーザーフォームを使ってみてはどうでしょうか?


次のものはユーザフォームに
テキストボックスの 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
    • good
    • 0

 Columns("A:C").Hidden = True



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

この回答への補足

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

補足日時:2001/11/22 07:33
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報

カテゴリ