Excel VBA質問箱 IV

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

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


12031 / 13646 ツリー ←次へ | 前へ→

【12640】エクセルのカーソルを行ごと表示させるには office-hosokawa 04/4/9(金) 16:49 質問
【12648】Re:エクセルのカーソルを行ごと表示させる... Asaki 04/4/9(金) 17:35 回答
【12658】Re:エクセルのカーソルを行ごと表示させる... office-hosokawa 04/4/9(金) 22:33 質問
【12661】Re:エクセルのカーソルを行ごと表示させる... IROC 04/4/10(土) 19:53 回答
【12683】Re:エクセルのカーソルを行ごと表示させる... office-hosokawa 04/4/12(月) 15:11 回答
【12684】Re:エクセルのカーソルを行ごと表示させる... office-hosokawa 04/4/12(月) 15:12 お礼
【12687】Re:エクセルのカーソルを行ごと表示させる... office-hosokawa 04/4/12(月) 15:32 質問
【12694】Re:エクセルのカーソルを行ごと表示させる... Asaki 04/4/12(月) 17:46 回答
【12702】Re:エクセルのカーソルを行ごと表示させる... office-hosokawa 04/4/12(月) 20:10 質問
【12703】Re:エクセルのカーソルを行ごと表示させる... Asaki 04/4/12(月) 20:21 回答
【12705】Re:エクセルのカーソルを行ごと表示させる... office-hosokawa 04/4/12(月) 22:04 発言
【12766】Re:エクセルのカーソルを行ごと表示させる... office-hosokawa 04/4/14(水) 16:31 お礼
【12771】Re:エクセルのカーソルを行ごと表示させる... Asaki 04/4/14(水) 16:55 発言
【12776】Re:エクセルのカーソルを行ごと表示させる... office-hosokawa 04/4/14(水) 17:30 お礼
【12779】Re:エクセルのカーソルを行ごと表示させる... Asaki 04/4/14(水) 18:07 回答
【12782】Re:エクセルのカーソルを行ごと表示させる... office-hosokawa 04/4/14(水) 18:34 お礼

【12640】エクセルのカーソルを行ごと表示させるに...
質問  office-hosokawa  - 04/4/9(金) 16:49 -

引用なし
パスワード
   エクセルで、選択されたセルは太線の四角で囲まれていますが、これを選択されているセルがある行をすべて色を変えて表示する方法はないでしょうか?
カーソルキーの上下で行が変われば、次の行へ表示が移るようにしたいのですが

宜しくお願いします。

【12648】Re:エクセルのカーソルを行ごと表示させ...
回答  Asaki  - 04/4/9(金) 17:35 -

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

よくわかっていませんが、↓こういうのですか?
とりあえずは、対象シートオブジェクトに貼り付けてみてください。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  With Application
    .EnableEvents = False
    Target.EntireRow.Select
    Target(1).Activate
    .EnableEvents = True
  End With
End Sub

【12658】Re:エクセルのカーソルを行ごと表示させ...
質問  office-hosokawa  - 04/4/9(金) 22:33 -

引用なし
パスワード
   ▼Asaki さん:
>こんにちは。
>
>よくわかっていませんが、↓こういうのですか?
>とりあえずは、対象シートオブジェクトに貼り付けてみてください。
>
>Private Sub Worksheet_SelectionChange(ByVal Target As Range)
>  With Application
>    .EnableEvents = False
>    Target.EntireRow.Select
>    Target(1).Activate
>    .EnableEvents = True
>  End With
>End Sub

早速ありがとうございます。
初心者なもので、VBAのどこに貼り付ければよいかわからず...
実行されないのですが...

よろしければ、もう少し詳しくお願いします。

【12661】Re:エクセルのカーソルを行ごと表示させ...
回答  IROC  - 04/4/10(土) 19:53 -

引用なし
パスワード
   alt+f11 で VBE を開いて プロジェクトウィンドウの
シートモジュールです。

実行するものではなく、
SelectionChange
選択しているセルが変更されると
自動的に実行されるイベントマクロです。

【12683】Re:エクセルのカーソルを行ごと表示させ...
回答  office-hosokawa  - 04/4/12(月) 15:11 -

引用なし
パスワード
   ▼Asaki さん:
>こんにちは。
>
>よくわかっていませんが、↓こういうのですか?
>とりあえずは、対象シートオブジェクトに貼り付けてみてください。
>
>Private Sub Worksheet_SelectionChange(ByVal Target As Range)
>  With Application
>    .EnableEvents = False
>    Target.EntireRow.Select
>    Target(1).Activate
>    .EnableEvents = True
>  End With
>End Sub


ばっちり、動きました
ありがとうございました。

【12684】Re:エクセルのカーソルを行ごと表示させ...
お礼  office-hosokawa  - 04/4/12(月) 15:12 -

引用なし
パスワード
   ▼office-hosokawa さん:
>▼Asaki さん:
>>こんにちは。
>>
>>よくわかっていませんが、↓こういうのですか?
>>とりあえずは、対象シートオブジェクトに貼り付けてみてください。
>>
>>Private Sub Worksheet_SelectionChange(ByVal Target As Range)
>>  With Application
>>    .EnableEvents = False
>>    Target.EntireRow.Select
>>    Target(1).Activate
>>    .EnableEvents = True
>>  End With
>>End Sub
>
>
>ばっちり、動きました
>ありがとうございました。

すいません。お礼のはずが、答えになってしまいました。

数々の失礼お許しください。

【12687】Re:エクセルのカーソルを行ごと表示させ...
質問  office-hosokawa  - 04/4/12(月) 15:32 -

引用なし
パスワード
   ▼office-hosokawa さん:
>エクセルで、選択されたセルは太線の四角で囲まれていますが、これを選択されているセルがある行をすべて色を変えて表示する方法はないでしょうか?
>カーソルキーの上下で行が変われば、次の行へ表示が移るようにしたいのですが
>
>宜しくお願いします。

以下の様に
>Private Sub Worksheet_SelectionChange(ByVal Target As Range)
>  With Application
>    .EnableEvents = False
>    Target.EntireRow.Select
>    Target(1).Activate
>    .EnableEvents = True
>  End With
>End Sub
で、解決したのですが少し贅沢が出まして。
表示するカーソルを「黄色」に変更する手順は無いものでしょうか?

度々すいません。
宜しくお願いします。

【12694】Re:エクセルのカーソルを行ごと表示させ...
回答  Asaki  - 04/4/12(月) 17:46 -

引用なし
パスワード
   >表示するカーソルを「黄色」に変更する
カーソルというのは、セルを編集状態にしたときに出て、点滅している「|」のことですか?
それとも、ActiveCellのことですか?

前者なら、多分出来ません。
後者なら出来ますが、もう一工夫必要です。
一旦、色をデフォルトに戻して、選択したセルに着色する必要があります。
マクロの記録をお試しください。

【12702】Re:エクセルのカーソルを行ごと表示させ...
質問  office-hosokawa  - 04/4/12(月) 20:10 -

引用なし
パスワード
   ▼Asaki さん:
>>表示するカーソルを「黄色」に変更する
>カーソルというのは、セルを編集状態にしたときに出て、点滅している「|」のことですか?
>それとも、ActiveCellのことですか?
>
>前者なら、多分出来ません。
>後者なら出来ますが、もう一工夫必要です。
>一旦、色をデフォルトに戻して、選択したセルに着色する必要があります。
>マクロの記録をお試しください。

選択されている行全体の色を黄色にしたいのです。
できますでしょうか?

また、「F12」のキーを押すと解除する機能を追加したいのですが
できますでしょうか?

よろしくお願いします。

【12703】Re:エクセルのカーソルを行ごと表示させ...
回答  Asaki  - 04/4/12(月) 20:21 -

引用なし
パスワード
   >選択されている行全体の色を黄色にしたいのです。
>できますでしょうか?
出来ます。
先ずは、マクロの記録をお試しください。
ご自分で、コードをいろいろいじってみることをお薦めします。

>「F12」のキーを押すと解除する機能を追加したいのですが
何を解除するのでしょうか?
行選択?着色?

【12705】Re:エクセルのカーソルを行ごと表示させ...
発言  office-hosokawa  - 04/4/12(月) 22:04 -

引用なし
パスワード
   ▼Asaki さん:
>>選択されている行全体の色を黄色にしたいのです。
>>できますでしょうか?
>出来ます。
>先ずは、マクロの記録をお試しください。
>ご自分で、コードをいろいろいじってみることをお薦めします。
>
>>「F12」のキーを押すと解除する機能を追加したいのですが
>何を解除するのでしょうか?
>行選択?着色?

説明不足で、すいません。
行選択機能を停止し、通常の範囲指定ができるようにしたいのですが。
解除しないと、コピーしたときなどは、行ごとになる為。

以上、よろしくお願いします。

【12766】Re:エクセルのカーソルを行ごと表示させ...
お礼  office-hosokawa  - 04/4/14(水) 16:31 -

引用なし
パスワード
   ▼office-hosokawa さん:
>▼Asaki さん:
>>>選択されている行全体の色を黄色にしたいのです。
>>>できますでしょうか?
>>出来ます。
>>先ずは、マクロの記録をお試しください。
>>ご自分で、コードをいろいろいじってみることをお薦めします。
>>
>>>「F12」のキーを押すと解除する機能を追加したいのですが
>>何を解除するのでしょうか?
>>行選択?着色?
>
>説明不足で、すいません。
>行選択機能を停止し、通常の範囲指定ができるようにしたいのですが。
>解除しないと、コピーしたときなどは、行ごとになる為。
>
>以上、よろしくお願いします。


進展がないようなので、この件は終わりにし、別途提起します(後日)

みなさま、ありがとうございました。

【12771】Re:エクセルのカーソルを行ごと表示させ...
発言  Asaki  - 04/4/14(水) 16:55 -

引用なし
パスワード
   >進展がないようなので、この件は終わりにし、別途提起します(後日)
進展がないのではなく、office-hosokawa さんが、なにも進展させていないだけです。

>>>先ずは、マクロの記録をお試しください。
>>>ご自分で、コードをいろいろいじってみることをお薦めします。
このような掲示板は、コード作成依頼場所ではありません。
ご自分で、ある程度の試行錯誤をしていただくべきでしょう。

【12776】Re:エクセルのカーソルを行ごと表示させ...
お礼  office-hosokawa  - 04/4/14(水) 17:30 -

引用なし
パスワード
   ▼Asaki さん:
>先ずは、マクロの記録をお試しください。
>ご自分で、コードをいろいろいじってみることをお薦めします。
>このような掲示板は、コード作成依頼場所ではありません。
>ご自分で、ある程度の試行錯誤をしていただくべきでしょう。

当然のことながら、進展がないのは私自身の事です。説明不足ですいません。

asakiさんの回答を元に
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim row As Integer
Dim col As Integer
Dim old_row As Integer
Dim old_col As Integer
Dim i As Integer
With Application
  '.EnableEvents = False
  '  MsgBox "test"
row = ActiveCell.row
col = ActiveCell.Column
If row > 1 Then
Range(Cells(row - 1, 2), Cells(row - 1, 5)).Interior.ColorIndex = 0
End If
Range(Cells(row + 1, 2), Cells(row + 1, 5)).Interior.ColorIndex = 0
Range(Cells(row, 2), Cells(row, 5)).Interior.ColorIndex = 6
old_row = row
old_col = col
  'Target.EntireRow.Select
  'Target(1).Activate
  '.EnableEvents = True
End With
End Sub

で、好きな色にして、好きな範囲を変えるまではできました。
しかし、これを実行していると、コピー・貼り付けができなくて
困っている状態でして。

失礼が、あったことを重ね重ねお詫びします。
失礼しました。

【12779】Re:エクセルのカーソルを行ごと表示させ...
回答  Asaki  - 04/4/14(水) 18:07 -

引用なし
パスワード
   終わりのところをなんなんですが。。。
F12キーを押すと、SelectionChangeでやっている色をつけたり、の処理のOn/Offを切り替えます。
適当にアレンジしてください。
初期起動時は On です。

ThisWorkbook に
Private Sub Workbook_Open()
  blnSelectRowOn = True
  Application.OnKey "{F12}", "chgSelection"
End Sub

標準モジュールを追加して、
Public blnSelectRowOn     As Boolean

Sub chgSelection()
  blnSelectRowOn = Not blnSelectRowOn
End Sub

対象シートのSelectionChangeイベントを、↓こんな感じにすると、
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  Dim new_row As Long
  Dim new_col As Long
  Dim old_row As Long
  Dim old_col As Long

  If blnSelectRowOn Then
    new_row = ActiveCell.Row
    new_col = ActiveCell.Column
    If new_row > 1 Then
      Range(Cells(new_row - 1, 2), Cells(new_row - 1, 5)).Interior.ColorIndex = 0
    End If
    Range(Cells(new_row + 1, 2), Cells(new_row + 1, 5)).Interior.ColorIndex = 0
    Range(Cells(new_row, 2), Cells(new_row, 5)).Interior.ColorIndex = 6
    old_row = new_row
    old_col = new_col
  End If
End Sub

行番号を格納するような変数は、Long型が無難です。
また、Row は同名のプロパティがありますから、変数には利用されないことをお薦めします。

【12782】Re:エクセルのカーソルを行ごと表示させ...
お礼  office-hosokawa  - 04/4/14(水) 18:34 -

引用なし
パスワード
   ▼Asaki さん:
>終わりのところをなんなんですが。。。
>F12キーを押すと、SelectionChangeでやっている色をつけたり、の処理のOn/Offを切り替えます。
>適当にアレンジしてください。
>初期起動時は On です。
>
>ThisWorkbook に
>Private Sub Workbook_Open()
>  blnSelectRowOn = True
>  Application.OnKey "{F12}", "chgSelection"
>End Sub
>
>標準モジュールを追加して、
>Public blnSelectRowOn     As Boolean
>
>Sub chgSelection()
>  blnSelectRowOn = Not blnSelectRowOn
>End Sub
>
>対象シートのSelectionChangeイベントを、↓こんな感じにすると、
>Private Sub Worksheet_SelectionChange(ByVal Target As Range)
>  Dim new_row As Long
>  Dim new_col As Long
>  Dim old_row As Long
>  Dim old_col As Long
>
>  If blnSelectRowOn Then
>    new_row = ActiveCell.Row
>    new_col = ActiveCell.Column
>    If new_row > 1 Then
>      Range(Cells(new_row - 1, 2), Cells(new_row - 1, 5)).Interior.ColorIndex = 0
>    End If
>    Range(Cells(new_row + 1, 2), Cells(new_row + 1, 5)).Interior.ColorIndex = 0
>    Range(Cells(new_row, 2), Cells(new_row, 5)).Interior.ColorIndex = 6
>    old_row = new_row
>    old_col = new_col
>  End If
>End Sub
>
>行番号を格納するような変数は、Long型が無難です。
>また、Row は同名のプロパティがありますから、変数には利用されないことをお薦めします。

早速作成したところ、うまくできました。

細かなコメントも再三に渡っていただきありがとうございました。

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