VBAの作り方と方法についてお教えください。
Mac 2011
エクセルで表を作成しました。
これが縦にエンドレスに長いのですが、
A列のセル中に2という数字が入った場合、
非表示をして印刷をかけたいと思うのですが
その場合のVBAの書き方をお教えください。
行4 7 10 13 の行が非表示にしたいのですが。
自分なりに調べたのですが
アドバイスいただけると幸いです。
Option Explicit
Private Sub Cmd隠す_Click()
Dim 行番号 As Long
'行を隠す
For 行番号 = 4 To 13
If Cells(行番号, 1).Value = "2" Then
Cells(行番号, 1).EntireRow.Hidden = True
End If
Next 行番号
End Sub
Private Sub Cmd表示する_Click()
'表全体を再表示する
Cells.Select
Selection.EntireRow.Hidden = False
Selection.EntireColumn.Hidden = False
Cells(1, 1).Select
End Sub
皆さま、ご連絡遅くなりまして申し訳ありません。
いろいろアドバイスいただけて感謝しております。
質問の書き方がよくなかったようなのですが、
VBAは初めてなので動作方法もわからず困っております。
簡単なやり方などお教えいただけると助かります。
MacのExcelで開発メニューからEditorを出しスプリクトを書いてますが、
実行できません。
そもそもの話で申し訳ありませんが
ご教授いただけると幸いです。
コメント(5件)
何をどうアドバイスほしいのでしょうか?
>A列のセル中に2という数字が入った場合、
> 非表示をして印刷をかけたいと思うのですが
現在のコード
'行を隠す
For 行番号 = 4 To 13
If Cells(行番号, 1).Value = "2" Then
Cells(行番号, 1).EntireRow.Hidden = True
End If
Next 行番号
が動いているなら、
他の質問
http://q.hatena.ne.jp/1463826490#a1256732
を参考にすると、最終行が取得できるので、
最終行 = Cells(Rows.Count, 1).End(xlUp).Row
として、
'行を隠す
最終行 = Cells(Rows.Count, 1).End(xlUp).Row
For 行番号 = 4 To 最終行
If Cells(行番号, 1).Value = "2" Then
Cells(行番号, 1).EntireRow.Hidden = True
End If
Next 行番号
のループにすると
エンドレス※どこかで終わる可変の行
まで、非表示にできるのでは?
あとは、印刷のコードを教えてくださいとか質問すると、
親切な人たちが答えてくれると思います。
最終行 = Cells(Rows.Count, 1).End(xlUp).Row
試してみてください。
.Value = "2" が 数値を~でとかも思ったけど、テストしてません。
質問が読み切れなかったので、コメントで失礼します。
Cells(行番号, 1).EntireRow.Hidden = True
だと、セルに対してなぜかエラーにならないけど、非表示にしているので、
行に対して
Rows(行番号).EntireRow.Hidden = True
とRowsを使用すればいいと思います。
'行を隠す
最終行 = Cells(Rows.Count, 1).End(xlUp).Row
For 行番号 = 4 To 最終行
If Cells(行番号, 1).Value = "2" Then
Rows(行番号).EntireRow.Hidden = True
End If
Next 行番号
と
Rows(行番号)を使ってみてください。
ken3memo>Cells(行番号, 1).EntireRow.Hidden = True
ken3memo>だと、セルに対してなぜかエラーにならないけど、非表示にしているので、
特定のセルの EntireRow(そのセルがある行)に対して、Hidden = True にしているので、
このままでも大丈夫です。
>特定のセルの EntireRow(そのセルがある行)に対して、Hidden = True にしているので、
このままでも大丈夫です。
>
<<
コードを動かしていないのバレバレでしたね。
フォローどうもです。