
エクセルで日報を作っています。
1日づつシートが1か月分あります。(Mainシート、8/25~9/24のシート)
すべてのシート(※1)にB53にBack、H53にMain、O53にNextとあります。
(※1)最初のシートはNextのみ 最後のシートはBackのみ。
8/25のNextは8/26のNextにリンクさせる。Backはその逆。
MainはMainシートへリンクする。Mainシートにはリンクはない。
1つずつリンクさせていくのは面倒なので何かいいマクロはありませんか。
どうかよろしくお願いします。
No.2ベストアンサー
- 回答日時:
すみません。
マクロ例にミスがありました。必須プロパティを忘れていました。Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim nxS As Integer
Dim bkS As Integer
On Error Resume Next
nxS = ActiveSheet.Index + 1
bkS = ActiveSheet.Index - 1
If Sh.Name = "main" Then Exit Sub
ActiveSheet.Hyperlinks.Add _
Anchor:=Range("H53"), _
Address:="", _
SubAddress:= _
"main!H53", TextToDisplay:="Main"
ActiveSheet.Hyperlinks.Add _
Anchor:=Range("O53"), _
Address:="", _
SubAddress:= _
Sheets(nxS).Name & "!O53", TextToDisplay:="Next"
If Sh.Index = 2 Then Exit Sub
ActiveSheet.Hyperlinks.Add _
Anchor:=Range("B53"), _
Address:="", _
SubAddress:= _
Sheets(bkS).Name & "!B53", TextToDisplay:="Back"
If Err.Number = 9 Then Range("O53").Value = ""
End Sub
No.1
- 回答日時:
main 以外のシート名は可変扱いで、シートのインデックス値を使って次のシート、前のシートを指定してはいかがでしょう。
このマクロ例はWorkbook_SheetActivate イベントで、シートがクリックされる度に、ハイパーリンクを設定し直します。シートの追加・削除・main以外のリネームにも有効です。
TisWorkbookコードモジュールに張り付けて使用してみてください。なお、最初は空のシートで試してください。
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim nxS As Integer
Dim bkS As Integer
On Error GoTo EH
nxS = ActiveSheet.Index + 1
bkS = ActiveSheet.Index - 1
If Sh.Name = "main" Then Exit Sub
ActiveSheet.Hyperlinks.Add _
Anchor:=Range("H53"), _
SubAddress:= _
"main!H53", TextToDisplay:="Main"
ActiveSheet.Hyperlinks.Add _
Anchor:=Range("O53"), _
SubAddress:= _
Sheets(nxS).Name & "!O53", TextToDisplay:="Next"
If Sh.Index = 2 Then Exit Sub
ActiveSheet.Hyperlinks.Add _
Anchor:=Range("B53"), _
SubAddress:= _
Sheets(bkS).Name & "!B53", TextToDisplay:="Back"
Exit Sub
EH:
If Err.Number = 9 Then Range("O53").Value = ""
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ポップコーンの捨て方
-
IHクッキングヒーターの操作パ...
-
エナメル生地の貼り付けについて
-
フォルツァ バッテリーを外して...
-
癒着してしまったテレビの液晶...
-
原付 レッツシート開け方
-
マジェスティ(4HC)のシート下...
-
車のシートでおもらし
-
ドライブレコーダーのSDカード...
-
リアシート無しで運転してたら...
-
ネガフィルムの材質って何ですか?
-
エクセルで複数のシートをフォ...
-
BIKEのシートの取り外し方を教...
-
複数wavを1つに圧縮して、cueシ...
-
失敗したスライムの捨て方につ...
-
灰皿の下に敷く敷物を探してい...
-
磁石のくっつくパネルを作りた...
-
ホンダジョルノのイス シート...
-
アドレスV100のガソリン給油口...
-
水の染み込んだバイクのシート...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで複数のシートをフォ...
-
括弧があるとHYPERLINKで飛べな...
-
Vba Array関数について教えてく...
-
【マクロ】シートの変数へ入れ...
-
原付 レッツシート開け方
-
IHクッキングヒーターの操作パ...
-
フォルツァ バッテリーを外して...
-
Excel複数シートから日付と文字...
-
エクセルVBA 4行飛ばしで転記す...
-
飛行機の座席について 3列シー...
-
BRIDEのシート張り替えってでき...
-
シートベルトの固定解除
-
水の染み込んだバイクのシート...
-
ポップコーンの捨て方
-
リアシート無しで運転してたら...
-
建築模型、カーブの作り方
-
エスティマのコンソールボック...
-
マジェスティ(4HC)のシート下...
-
カッティングシートの上からア...
-
XR250BAJAのシートのはずし方を...
おすすめ情報