過去ログ

                                Page     125
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ▼シート選択時のマクロで不具合  ひよこ 02/9/24(火) 11:28
   ┣Re:シート選択時のマクロで不具合  角田 02/9/24(火) 12:46
   ┃  ┗Re:シート選択時のマクロで不具合  ひよこ 02/9/24(火) 13:28
   ┗Re:シート選択時のマクロで不具合  BOTTA 02/9/24(火) 12:50
      ┣かぶりました。  BOTTA 02/9/24(火) 13:00
      ┗Re:シート選択時のマクロで不具合  ひよこ 02/9/24(火) 13:30

 ───────────────────────────────────────
 ■題名 : シート選択時のマクロで不具合
 ■名前 : ひよこ
 ■日付 : 02/9/24(火) 11:28
 -------------------------------------------------------------------------
   ThisWorkbook に、以下のマクロを書いています。
「サンプル」Sheetが選択された場合に、以下のマクロが実行
されるようにしたいのですが、問題が発生します。

マクロは実行できるのですが、他のシート見出しをクリック
して移動しようとすると、再度マクロが実行されてしまい、
どうしても他のシートへ移動できません。
「サンプル」Sheet内のセルにハイパーリンクを作成し、
それをクリックすれば「サンプル」Sheetより抜け出せるのですが・・・。

どなたか、解決方法を教えて下さい。

Private Sub Workbook_SheetActivate(ByVal サンプル As Object)

Sheets("サンプル").Select
  Range("C20").Select
  Range("A19:C1019").Select
  Range("A1019").Activate
  Selection.Sort Key1:=Range("A20"), Order1:=xlAscending, Header:=xlGuess, _
    OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _
    :=xlPinYin
  ActiveWindow.ScrollRow = 1
  Range("C20").Select

End Sub
 ───────────────────────────────────────  ■題名 : Re:シート選択時のマクロで不具合  ■名前 : 角田  ■日付 : 02/9/24(火) 12:46  ■Web : http://www.h3.dion.ne.jp/~sakatsu/index.htm  -------------------------------------------------------------------------
   こんにちは。
ThisWorkbookのWorkbook_SheetActivateは全てのシートに対して
動くんですから、その中で「サンプル」シートをSelectしたら、そうなります。

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
  If (Sh.Name <> "サンプル") Then
   Exit Sub
  End If

とした後に、以下を続けるか、それとも、「サンプル」シートモジュールの
Private Sub Worksheet_Activate()
に以下を続けるかです。

  Range("A19:C1019").Sort _
   Key1:=Range("A20"), Order1:=xlAscending, Header:=xlGuess, _
   OrderCustom:=1, MatchCase:=False, _
   Orientation:=xlTopToBottom, SortMethod:=xlPinYin
  ActiveWindow.ScrollRow = 1
  Range("C20").Activate
End Sub
 ───────────────────────────────────────  ■題名 : Re:シート選択時のマクロで不具合  ■名前 : ひよこ  ■日付 : 02/9/24(火) 13:28  -------------------------------------------------------------------------
   ▼角田 さん:

丁寧なご説明、ありがとうございました。

>ThisWorkbookのWorkbook_SheetActivateは全てのシートに対して
>動くんですから、その中で「サンプル」シートをSelectしたら、そうなります。

マクロの本を見ながら慣れないながらも作ってみましたが、全く知りませんでした。
不親切なその本(?)には、解説が無く、初めて知りました。
教えて頂いた方法で、問題なく動作できました。
とっても助かりました。ありがとうございます!!
 ───────────────────────────────────────  ■題名 : Re:シート選択時のマクロで不具合  ■名前 : BOTTA  ■日付 : 02/9/24(火) 12:50  -------------------------------------------------------------------------
   ひよこ さん、こんにちは
>ThisWorkbook に、以下のマクロを書いています。
ではなくて
Sheetxx("サンプル")
に、
Private Sub Worksheet_Activate()
として記述してみては?
 ───────────────────────────────────────  ■題名 : かぶりました。  ■名前 : BOTTA  ■日付 : 02/9/24(火) 13:00  -------------------------------------------------------------------------
   角田さん、ごめんなさい。
かぶってしまいました。
その上、角田さんの方が親切な解説ですね。
 ───────────────────────────────────────  ■題名 : Re:シート選択時のマクロで不具合  ■名前 : ひよこ  ■日付 : 02/9/24(火) 13:30  -------------------------------------------------------------------------
   ▼BOTTA さん:

こんにちは。
角田さん・BOTTAさん、お2人のアドバイスを
両方試してみました。
どちらも、バッチリ!!でした。

ありがとうございました。
とても、助かりました。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 125