- ベストアンサー
Excel VBAでのoffsetについての質問
- Excel VBAでのoffsetについての質問です。セルをoffsetを使用して移動させていますが、ファイルを開けた最初だけoffsetしている所とは違う所へ行ってしまいます。
- ファイルオープン時にセルをoffsetするExcel VBAのコードがうまく動作しない問題が発生しています。別のセルをクリックした後では正常に動作しますが、最初のセル選択時には予期しない場所に移動してしまいます。
- ファイルを開けた最初のセル選択時に、Excel VBAのoffsetを使用しても予想外の場所に移動してしまう問題が発生しています。原因や対策についてのアドバイスをいただきたいです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>ちなみにファイルオープンしてから最初に >MsgBox ActiveCell.Address(0, 0, xlA1) >を表示させるとC11になっています。 どこにMsgBox ActiveCell.Address(0, 0, xlA1) を書かれたのですか? Workbook_Openイベント Worksheet_Activateイベント Worksheet_Changeイベント Worksheet_Changeならば Private Sub Worksheet_Change(ByVal Target As Range) MsgBox "イベントが発生したセルは:" & Target.Address(0, 0) & vbCrLf & _ "アクティブセルは:" & ActiveCell.Address(0, 0) End Sub でTargetとActiveCellの違いが有りますよ
その他の回答 (2)
- watabe007
- ベストアンサー率62% (476/760)
>ファイルオープン時はうまく動きません。 ファイルをオープンしただけではWorksheet_Activateイベントは発生しません 一旦他のシートから該当のシートを選択してイベントを発生するか Workbook_OpenイベントでWorksheet_Activateを発生するコードを書くか (Activateイベントが発生するシート名をSheet1としています。) Private Sub Workbook_Open() With Worksheets("Sheet1") .Activate Application.Run .CodeName & ".Worksheet_Activate" End With End Sub
- hige_082
- ベストアンサー率50% (379/747)
>ファイルを開けた最初だけoffsetしている所とは違う所へ行ってしまいます。 多分勘違いをされていると思います ファイルオープン時は Worksheet_Activateイベントも Worksheet_Changeイベントも 発生しません ファイルオープン時に処理を行いたいのであれば ThisWorkbookモジュールでWorkbook_Openイベントを使用する方法があります '例えば Private Sub Workbook_Open() If ActiveSheet.Name = "Sheet1" Then Range("C10").Select End Sub ファイルを開いた時 Sheet1が表示されていたら セルC10を選択します 以上参考まで