Excel VBA質問箱 IV

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

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


5756 / 13645 ツリー ←次へ | 前へ→

【49060】シートを選ぶのに dansyaku03 07/5/22(火) 9:28 質問[未読]
【49066】Re:シートを選ぶのに Blue 07/5/22(火) 11:43 回答[未読]
【49070】Re:シートを選ぶのに dansyaku03 07/5/22(火) 13:45 質問[未読]
【49071】Re:シートを選ぶのに Blue 07/5/22(火) 14:11 発言[未読]

【49060】シートを選ぶのに
質問  dansyaku03  - 07/5/22(火) 9:28 -

引用なし
パスワード
   シートの見出しの色を指定してシートをアクティブにする事は出来るのでしょうか?
簡単な質問かもしれないですが宜しくお願いします。

【49066】Re:シートを選ぶのに
回答  Blue  - 07/5/22(火) 11:43 -

引用なし
パスワード
   ▼dansyaku03 さん:
>シートの見出しの色を指定してシートをアクティブにする事は出来るのでしょうか?
「マクロの記録」を使って、シートの見出しの色を設定すると

  Sheets("Sheet1").Select
  ActiveWorkbook.Sheets("Sheet1").Tab.ColorIndex = 3

というコードが出来上がります。(Excel2003)

ここから、シートオブジェクトのTabプロパティのColorIndexプロパティを見れば
対象シートを限定できるのではないかなと見当がつきます。


見出しの色をキーにしてすべてのシートからさがすという処理になります。

つまり、For Eachを使って

Dim sht As Object
Dim targetColor As XlColorIndex

targetColor = 3 ' 探したい色(サンプルとして赤)

' すべてのシートのから探す
For Each sht In ActiveWorkbook.Sheets
  ' 該当の色か
  If sht.Tab.ColorIndex = targetColor Then
    ' アクティブに
    sht.Activate
    ' 1つ見つかったので探すのをやめる
    Exit For
  End If
Next

のようなコードになります。

【49070】Re:シートを選ぶのに
質問  dansyaku03  - 07/5/22(火) 13:45 -

引用なし
パスワード
   ▼Blue さん:

ありがとうございます。
あつかましい質問なんですが、
ブックの中で例えばtargetColor = 5 'の見出しを全部アクティブにするには
どうしたらよいでしょうか?宜しくお願い致します。

【49071】Re:シートを選ぶのに
発言  Blue  - 07/5/22(火) 14:11 -

引用なし
パスワード
   ▼dansyaku03 さん:
>ブックの中で例えばtargetColor = 5 'の見出しを全部アクティブにするには
全部をアクティブにする?
出来ないのでは?
(アクティブなシート→最善面に来るシート→唯一)


アクティブではなく選択(Select)なら出来ると思うけど。


Sheet1〜Sheet3を選択状態にするのを「マクロの記録」したもの

Sheets(Array("Sheet1", "Sheet2", "Sheet3")).Select

Arrayのところを動的配列でFro Eachの中で作成すれば出来るでしょう。

ヒント)
  Dim shts() As String
  
  ReDim shts(0)
  shts(0) = "Sheet1"

  ReDim shts(1)
  shts(1) = "Sheet2"

  ReDim shts(2)
  shts(2) = "Sheet3"

  Sheets(shts).Select

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