[[20180217175622]] 『複数ある行の折り返し設定のうち個別の折り返しを』(初心者9371) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『複数ある行の折り返し設定のうち個別の折り返しを解除したい』(初心者9371)

1つのシート上に複数の折り返しが設定してあります
すべての折り返しを一度に解除することは
Sub 全折り込み解除()
  ActiveSheet.Outline.ShowLevels RowLevels:=2
End Sub
Sub 全折り込み()

    ActiveSheet.Outline.ShowLevels RowLevels:=1
End Sub
で可能なのですが
個別の折り返しをマクロで行いたいと考えました
画面左の+−のボタンで可能なのですが
長い行の折り返し箇所もありそこまで画面を
スクロールする必要があり、何とかマクロで出来ないかと
考えました
可能でしょうか
可能ならどういう構文になるのでしょうか
宜しくお願いします。

< 使用 Excel:Excel2013、使用 OS:Windows10 >


もう少し、具体例を使って説明されるとよいです。
というわけで、何をしたいか、理解できていませんが、
↓とかは、参考になりますか?
http://vbabeginner.net/%E3%82%B0%E3%83%AB%E3%83%BC%E3%83%97%E5%8C%96%E3%81%AE%E8%A1%A8%E7%A4%BA%E3%81%A8%E9%9D%9E%E8%A1%A8%E7%A4%BA/

それとも、希望の位置にスクロールできればよいのでしょうか。

(マナ) 2018/02/18(日) 11:54


マナさん
有難うございます。
何をしたいか、理解できていませんが、 説明がへたですみません
下記で説明用の簡易メモ的なものを作っています

	A	B	C
1	説明1	これは説明1の内容です	
2		説明1の内容	
3		説明1の内容	
4		説明1の内容	
5		説明1の内容	
6	説明2	これは説明2の内容です	
7		説明2の内容	
8		説明2の内容	
9		説明2の内容	
10		説明2の内容	
11		説明2の内容	
12		説明2の内容	
13		説明2の内容	
14		説明2の内容	
15		説明2の内容	
16		説明2の内容	
17		説明2の内容	
18		説明2の内容	
19		説明2の内容	
20		説明2の内容	
21   説明3	これは説明3の内容です			
22		説明3の内容	
23		説明3の内容	
24		説明3の内容	
25		説明3の内容	
26		説明3の内容	

ずっと下までみていかないとA列の何についての説明かがわかりません
そこで折り返し機能をつかい
A B C
1 説明1 これは説明1の内容です
6 説明2 これは説明2の内容です
21 説明3 これは説明3の内容です
 としました
画面左の折り返しのボタン + -ボタンで各項目の折り返し・折り返し解除を
出来るようにしました
例えば、説明2の折り返しをする場合、ボタンを探すのに画面をスクロール
しないといけない場合があります
こうしたボタン操作になれていないメンバー(私もそうですが)使いかたに不便
との声があり
A B  C           D   E
1 説明1 これは説明1の内容です  開く  閉じる
6 説明2 これは説明2の内容です  開く  閉じる
21 説明3 これは説明3の内容です  開く  閉じる
として、例えば D6セルの開くと説明2の折り返しが開くように
したいと考えました
教えて頂いたサイトに個別の折り返し、折り返し解除は出来ないと
ありましので、ここでの質問の内容については理解できました
有難うございました。

(初心者9371) 2018/02/18(日) 13:28


得意じゃないので代替案でもよければ

シートに1行目にCombobox を用意して
ウィンドウ枠固定で、1行目を常時表示
Combobox 選択によって、スクロールさせます。

シートモジュールに以下をコピペしてください。

 Option Explicit

 Private Sub ComboBox1_Change()
    If ComboBox1.ListIndex = -1 Then Exit Sub
    Application.Goto Cells(ComboBox1.Value, 1), True

 End Sub

 Private Sub Worksheet_Activate()
    Dim c As Range

    With ComboBox1
        .ColumnCount = 3
        .BoundColumn = 3
        .ColumnWidths = "50;400;0"  '★幅調整は必要
        .Clear
        For Each c In Columns(1).SpecialCells(xlCellTypeConstants)
            .AddItem c.Value
            .List(.ListCount - 1, 1) = c.Offset(, 1).Value
            .List(.ListCount - 1, 2) = c.Row
        Next
    End With

 End Sub

(マナ) 2018/02/18(日) 15:00


 >例えば、説明2の折り返しをする場合、ボタンを探すのに画面をスクロール 
 >しないといけない場合があります

 私には依然としてよく分からないです。

 EXCELの行や列を折りたたむ「グループ化」をマスターしよう
http://h1r0-style.net/excelvba/howto-group-rows-and-columns
  ↑
 そのページの「上の行をたたみ込む方法」に書かれている通り、

  [集計行または列の位置]ダイアログの
    □詳細データの下

 のチェックを外せば、マイナスボタンは一番上に在るんですから
 下にスクロールをする必要なんて無いと思うんですけど?

(半平太) 2018/02/18(日) 15:30


  ↑
 >すると、今度は上にスクロールするのが面倒と言うことなんですか?

(半平太) 2018/02/18(日) 15:33


もう見てないようですが、折り返しでは無く、詳細行の表示/非表示ですね。
マナさんの紹介ページの応用です。
A1セルから連続して提示のようなデータで、"説明n"に対し1つ以上の"説明nの内容"があるとして、
・A列のグループ化しないセル(例:"説明1")でダブルクリック(一番最初に実行してください)すると
その詳細行が表示されます。
・A列のグループ化するセル(空白セルのどのセルでも良い)でダブルクリックすると
全ての詳細行が非表示になります。

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

    Dim r As Range
    Dim rd As Range
    Dim rng As Range

    Application.ScreenUpdating = False
    Set rng = Range("A1").CurrentRegion.Columns("A")
    If Not Intersect(Target, rng) Is Nothing Then
        Cancel = True
        Me.Outline.ShowLevels rowlevels:=2
        If Target.Value = "" Then
            Me.Outline.ShowLevels rowlevels:=1
            Application.Goto Range("A1"), True   '不要なら削除してください
            Exit Sub
        Else
            Set rng = rng.SpecialCells(xlCellTypeBlanks)
            On Error Resume Next
            For Each r In rng.Areas
                r.EntireRow.Ungroup
            Next
            On Error GoTo 0
            For Each r In rng.Areas
                If Intersect(Target.Offset(1), r) Is Nothing Then
                    r.EntireRow.Group
                Else
                    Set rd = r
                End If
            Next
            Me.Outline.ShowLevels rowlevels:=1
            rd.EntireRow.Group
            Application.Goto Target, True   '不要なら削除してください
        End If
    End If
End Sub

(kazuo) 2018/02/19(月) 09:05


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.