Excel VBA質問箱 IV

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

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


3 / 13006 ツリー ←次へ | 前へ→

【79010】チェックボックスがONの場合に選択している行文字を太くする ペーターパン 17/4/14(金) 12:07 質問[未読]

【79104】Re:チェックボックスがONの場合に選択して... ペーターパン 17/5/11(木) 10:32 お礼[未読]
【79263】Re:チェックボックスがONの場合に選択して... ペーターパン 17/6/23(金) 17:59 質問[未読]
【79270】Re:チェックボックスがONの場合に選択して... マナ 17/6/24(土) 12:28 発言[未読]
【79275】Re:チェックボックスがONの場合に選択して... マナ 17/6/24(土) 19:21 発言[未読]

【79104】Re:チェックボックスがONの場合に選択し...
お礼  ペーターパン  - 17/5/11(木) 10:32 -

引用なし
パスワード
   ▼β さん:
ありがとうございます。

モジュールレベルで変数を宣言する。
if not構文で宣言する。
どちらも今の私ではたどり着けない答えでした。

Worksheet_SelectionChangeの場合、イベント発生の度に変数がどうなっているかよく考えなくてはいけないのですね。
自分が試しに作ったものだと太字が延々と作られ続けた理由がよくわかりました。

壁にぶつかってまた1つ成長できました。
これからも精進します。

>▼ペーターパン さん:
>
>元々アップしたコードの Cellsを必要行のみにするとどうでしょうか?
>
>
>Option Explicit
>
>Dim bLine As Range
>
>Private Sub Worksheet_SelectionChange(ByVal Target As Range)
>  If Not bLine Is Nothing Then
>    bLine.Font.Bold = False
>    Set bLine = Nothing
>  End If
>  If CheckBoxes("ChkBx1").Value = xlOn Then
>    Selection.EntireRow.Font.Bold = True
>    Set bLine = Selection.EntireRow
>  End If
>End Sub

【79263】Re:チェックボックスがONの場合に選択し...
質問  ペーターパン  - 17/6/23(金) 17:59 -

引用なし
パスワード
   もし、下記のコードをアドインにしようとした場合、どうすればよいでしょうか?
過去の質問に再質問で申し訳ありませんが、何卒宜しくお願い致します。

>▼β さん:
>ありがとうございます。
>
>モジュールレベルで変数を宣言する。
>if not構文で宣言する。
>どちらも今の私ではたどり着けない答えでした。
>
>Worksheet_SelectionChangeの場合、イベント発生の度に変数がどうなっているかよく考えなくてはいけないのですね。
>自分が試しに作ったものだと太字が延々と作られ続けた理由がよくわかりました。
>
>壁にぶつかってまた1つ成長できました。
>これからも精進します。
>
>>▼ペーターパン さん:
>>
>>元々アップしたコードの Cellsを必要行のみにするとどうでしょうか?
>>
>>
>>Option Explicit
>>
>>Dim bLine As Range
>>
>>Private Sub Worksheet_SelectionChange(ByVal Target As Range)
>>  If Not bLine Is Nothing Then
>>    bLine.Font.Bold = False
>>    Set bLine = Nothing
>>  End If
>>  If CheckBoxes("ChkBx1").Value = xlOn Then
>>    Selection.EntireRow.Font.Bold = True
>>    Set bLine = Selection.EntireRow
>>  End If
>>End Sub

【79270】Re:チェックボックスがONの場合に選択し...
発言  マナ  - 17/6/24(土) 12:28 -

引用なし
パスワード
   ▼ペーターパン さん:

なぜアドインなのでしょうか。
ちょっと試してみましたが
メリットが感じられませんでした。

「元に戻す」の機能が使えなくなるのは気にしないのでしょうか。
特定ファイルにのみに適用するマクロではないのでしょうか。

【79275】Re:チェックボックスがONの場合に選択し...
発言  マナ  - 17/6/24(土) 19:21 -

引用なし
パスワード
   ▼ペーターパン さん:

試したのは、こんな感じです。

Option Explicit

Dim WithEvents xlApp As Application
Dim bLine As Range


Private Sub Workbook_Open()
  Set xlApp = Application
  
 With xlApp.CommandBars("Cell").Controls.Add(before:=1)
  .Caption = "強調表示OFF"
  .OnAction = "thisworkbook.メニュ切り替え"
  ThisWorkbook.Sheets(1).Cells(1).Value = False
 End With
  
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)

  If Not bLine Is Nothing Then bLine.Font.Bold = False
  xlApp.CommandBars("Cell").Controls(1).Delete
  
End Sub

Private Sub メニュ切り替え()
  
  With ThisWorkbook.Sheets(1).Cells(1)
    If .Value = False Then
      xlApp.CommandBars("Cell").Controls(1).Caption = "強調表示ON"
    Else
      xlApp.CommandBars("Cell").Controls(1).Caption = "強調表示OFF"
    End If
    .Value = Not .Value
  End With
   
End Sub


Private Sub xlApp_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)

  If Not bLine Is Nothing Then
    bLine.Font.Bold = False
    Set bLine = Nothing
  End If
  If ThisWorkbook.Sheets(1).Cells(1).Value Then
    Selection.EntireRow.Font.Bold = True
    Set bLine = Selection.EntireRow
  End If
  
End Sub

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