Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


10618 / 13644 ツリー ←次へ | 前へ→

【20779】行を隠したい あいりあり 04/12/19(日) 19:33 質問[未読]
【20780】Re:行を隠したい つん 04/12/19(日) 20:04 回答[未読]
【20781】Re:行を隠したい あいりあり 04/12/19(日) 20:17 質問[未読]
【20785】Re:行を隠したい [名前なし] 04/12/19(日) 22:01 発言[未読]
【20786】Re:行を隠したい あいりあり 04/12/19(日) 22:26 発言[未読]
【20788】Re:行を隠したい [名前なし] 04/12/19(日) 22:35 回答[未読]
【20790】Re:行を隠したい あいりあり 04/12/19(日) 22:44 お礼[未読]
【20793】Re:行を隠したい [名前なし] 04/12/19(日) 22:58 発言[未読]
【20807】ウインドウ枠を固定することにしました あいりあり 04/12/20(月) 16:22 お礼[未読]
【20789】Re:行を隠したい Kein 04/12/19(日) 22:37 回答[未読]
【20792】Re:行を隠したい あいりあり 04/12/19(日) 22:58 お礼[未読]
【20787】Re:行を隠したい Kein 04/12/19(日) 22:27 回答[未読]
【20791】Re:行を隠したい あいりあり 04/12/19(日) 22:50 お礼[未読]

【20779】行を隠したい
質問  あいりあり  - 04/12/19(日) 19:33 -

引用なし
パスワード
   excelのvbaで行を10行ずつ隠すボタンを作りたいです。
自分で作ったプログラムでは、一度隠すとそのボタンは
もう使い物になりません。一応、以下に自分のプログラムを
示します。分る方よろしくお願いします。

  Sub ボタン12_Click()

    Rows("12:21").Select
     Selection.EntireRow.Hidden = True
  End Sub

できれば、一度隠した行を表示するプログラムも教えてください。

【20780】Re:行を隠したい
回答  つん  - 04/12/19(日) 20:04 -

引用なし
パスワード
   こんばんは。

>excelのvbaで行を10行ずつ隠すボタンを作りたいです。
>自分で作ったプログラムでは、一度隠すとそのボタンは
>もう使い物になりません。一応、以下に自分のプログラムを
>示します。分る方よろしくお願いします。
>
>  Sub ボタン12_Click()
>
>    Rows("12:21").Select
>      Selection.EntireRow.Hidden = True
>  End Sub
>
>できれば、一度隠した行を表示するプログラムも教えてください。

行の表示・非表示で、いちいちその行をセレクトする必要はないです。

Sub TEST()
’行を隠す

  Rows("1:3").Hidden = True

End Sub

Sub TEST2()
’行を表示させる

  Rows("1:3").Hidden = False

End Sub

これでOKだと思います^^

【20781】Re:行を隠したい
質問  あいりあり  - 04/12/19(日) 20:17 -

引用なし
パスワード
   つんさん、返信ありがとうございます。

確かにこれで表示・再表示はできるのですが、
もう一度ボタンを押すと、もう10行隠すことができるようにし、
何十行も消すことができるようプログラミングしたいです、

つんさん、よろしくお願いします。教えてください。

>
>行の表示・非表示で、いちいちその行をセレクトする必要はないです。
>
>Sub TEST()
>’行を隠す
>
>  Rows("1:3").Hidden = True
>
>End Sub
>
>Sub TEST2()
>’行を表示させる
>
>  Rows("1:3").Hidden = False
>
>End Sub
>
>これでOKだと思います^^

【20785】Re:行を隠したい
発言  [名前なし]  - 04/12/19(日) 22:01 -

引用なし
パスワード
   ▼あいりあり さん:
>確かにこれで表示・再表示はできるのですが、
>もう一度ボタンを押すと、もう10行隠すことができるようにし、
>何十行も消すことができるようプログラミングしたいです、

差し支えなければ、何でこういうことをしたいかを
教えていただけませんか?

【20786】Re:行を隠したい
発言  あいりあり  - 04/12/19(日) 22:26 -

引用なし
パスワード
   返信ありがとうございます。

>>確かにこれで表示・再表示はできるのですが、
>>もう一度ボタンを押すと、もう10行隠すことができるようにし、
>>何十行も消すことができるようプログラミングしたいです、
>
>差し支えなければ、何でこういうことをしたいかを
>教えていただけませんか?

実は今、家計簿ソフト作っているんですが、
行が多くなりすぎると、下へスクロールするのが面倒です。
そこで、一番下へジャンプするとかもしたんですが、
下から上にジャンプするのどうしようとなった訳です。
というのも、下の行は日々変化するわけですから、
そのボタンも徐々に遠くなる訳です。
そこで、行を隠してみては、となりました。

別に隠すということにこだわっている訳ではないです。

例えば、古いデータを一つに合算して、データそのものは
別のところに保存するとかでもいいのですが・・・
そして、必要なときにはそのデータを挿入するというのもかんがえたのですが、
どちらにしても分らないです。

長々とすみません。
結局、目的はスクロールが面倒なんで、一工夫したいなってことです。
上のこと以外でもいいので、分る方よろしくお願いします。

【20787】Re:行を隠したい
回答  Kein  - 04/12/19(日) 22:27 -

引用なし
パスワード
   >もう一度ボタンを押すと、もう10行隠す
いちおう、こんな感じで出来ます。

Sub ボタン12_Click()
  Static HR As Long

  If HR = 0 Then
   HR = 12
  Else
   HR = HR + 10
  End If
  Rows(HR & ":" & HR + 9).Hidden = True
End Sub

非表示の行を一気に表示するコードは

Sub ボタン13_Click()
  Rows.Hidden = False
End Sub

【20788】Re:行を隠したい
回答  [名前なし]  - 04/12/19(日) 22:35 -

引用なし
パスワード
   ▼あいりあり さん:
>長々とすみません。
>結局、目的はスクロールが面倒なんで、一工夫したいなってことです。
>上のこと以外でもいいので、分る方よろしくお願いします。

そういうことであれば、「ウィンドウ枠の固定」だけでよいのでは?
表示したい行(例えば11行分)の1つ下のA列(A12セル)を選択して、
メニューのウィンドウ→ウィンドウ枠の固定で上から11行は
常に表示されたままになります。

【20789】Re:行を隠したい
回答  Kein  - 04/12/19(日) 22:37 -

引用なし
パスワード
   >目的はスクロール
ならば、セルをダブルクリックで一発でスクロールするマクロ。

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, _
Cancel As Boolean)
  Cancel = True
  With Application
   If Target.Column = 1 Then
     .Goto Range("A1"), True
   Else
     .GoTo Range("A65536").End(xlUp), True
     ActiveCell.Offset(1).Select
   End If
  End With
End Sub

これをシートモジュールに入れて下さい。
A列のセルをダブルクリックしたときだけ、A1 が選択されます。
その他の列ならA列の最終入力行を先頭にし、次の行を選択して終わります。

【20790】Re:行を隠したい
お礼  あいりあり  - 04/12/19(日) 22:44 -

引用なし
パスワード
   返信ありがとうございます

>>長々とすみません。
>>結局、目的はスクロールが面倒なんで、一工夫したいなってことです。
>>上のこと以外でもいいので、分る方よろしくお願いします。
>
>そういうことであれば、「ウィンドウ枠の固定」だけでよいのでは?
>表示したい行(例えば11行分)の1つ下のA列(A12セル)を選択して、
>メニューのウィンドウ→ウィンドウ枠の固定で上から11行は
>常に表示されたままになります。

そんな方法があるとは知りませんでした。
調べてみます。ありがとうございました。

【20791】Re:行を隠したい
お礼  あいりあり  - 04/12/19(日) 22:50 -

引用なし
パスワード
   返信ありがとうございます >Kein さん

Keinさんのプログラムでは一度再表示させると、
HRが大きいままなので、下の方で行を隠していました。

そこで自分なりに修正しました。以下のようになりました。
なまいきにすみません。何かご指摘があればお願いします。

Option Explicit  'HRをプロシージャ内だけではなく
Dim hr As Integer 'モジュール内どこでも使えるようにしました。

Sub 行隠す_Click()

  If hr = 0 Then
   hr = 12
  Else
   hr = hr + 10
  End If
  Rows(hr & ":" & hr + 9).Hidden = True

End Sub
Sub 行を表示させる()
  Rows.Hidden = False
  hr = 0

End Sub

【20792】Re:行を隠したい
お礼  あいりあり  - 04/12/19(日) 22:58 -

引用なし
パスワード
   keinさん、返信ありがとうございます。

確かにダブルクリックすることによって
最上段を表示することができました。
勉強になりました。

でも、やっぱりボタンとかをクリックしたほうが
いいです。完全に自分の好みですみません。

keinさんに教えていただいた、もう一つの
10行隠したり、表示したりするほうを使いたいと思います

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

【20793】Re:行を隠したい
発言  [名前なし]  - 04/12/19(日) 22:58 -

引用なし
パスワード
   ▼あいりあり さん:
>そんな方法があるとは知りませんでした。
>調べてみます。ありがとうございました。

補足です。
その固定した部分にジャンプするボタンをおけば、いつでも
ボタンが押せる状態になりますよね。

Sub 最下行へ() '最下行への移動ボタン用
 Cells(Cells.Rows.Count, 1).End(xlUp).Offset(1).Activate
End Sub

Sub 一番上へ() '一番上の行への移動ボタン用
 Cells(12, 1).Activate
End Sub

Sub 指定行へ() '指定した行への移動ボタン用
 '指定行入力セルがB1なら
 Cells(Range("B1").Value, 1).Activate
End Sub

【20807】ウインドウ枠を固定することにしました
お礼  あいりあり  - 04/12/20(月) 16:22 -

引用なし
パスワード
   返信ありがとうございました

ウインドウ枠の固定の方がすっきりしたので
こちらを採用したいと思います。

まだまだ、修正したい機能や追加したい機能が
たくさんあるので、また教えていただきたい
時があるかと思いますが、
そのときはよろしくお願いします。

10618 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free