電子書籍の厳選無料作品が豊富!

エクセルでカレンダーを作りました。西暦と月を入れると曜日に対して日付が自動に変わるオーソドックスなものです。
その日付にハイパーリンクを貼り付け、1日をクリックでsheet1へ,2日はsheet2へ、・・・31日はsheet31へとしたのですが、西暦・月が替わると1日がsheet1へがずれてしまい、日付とsheet番号が合わなくなってしまいました。
セル内の日付が変わったときに数字と共にハイパーリンク先も自動で変更は出来ますでしょうか?

A 回答 (3件)

こんばんは!



>西暦と月を入れると曜日に対して日付が自動に変わるオーソドックスなものです。

すなわち年や月が変わるとセルがずれる!というコトですよね?
VBAでの一例です。
具体的にどのような配置のカレンダーになっているのか判らないので、勝手に↓のような感じのカレンダーだとしてやってみました。

画像にある「カレンダー」SheetのA4~G9セルの範囲で数値が入っているセルをダブルクリックすると
各シートが表示されるようにしています。
(仮に 6/3の F4セルをダブルクリックするとSheet3 が表示されます)

「カレンダー」SheetのSheet見出し上で右クリック → コードの表示 → VBE画面のカーソルが点滅しているところに
↓のコードをコピー&ペースト → Excel画面に戻り(VBE画面を閉じて)
A4~G9セルのどこかをダブルクリックします。

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 'この行から//
If Intersect(Target, Range("A4:G9")) Is Nothing Then Exit Sub
If Target <> "" Then
Cancel = True
Worksheets("Sheet" & Day(Target)).Select
End If
End Sub 'この行まで//

※ 単にクリックだけだと間違ったセルを選択してもマクロが実行されてしまいますので
ダブルクリックでの操作にしています。
「エクセルでカレンダーにハイパーリンクを使」の回答画像3
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
思っていた通りの動作でした。色々、活用したいと思います。

お礼日時:2016/06/23 08:54

日付の各セルに


=HYPERLINK(("#sheet"&※&"!A1"),※)

※の代わりに、いま日付を算出している数式を入れてください
    • good
    • 0
この回答へのお礼

早急なご回答ありがとうございます。

お礼日時:2016/06/23 08:51

どうしてもというなら HYPERLINK関数で 日付の数式と紐付ければできます。

    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

お礼日時:2016/06/23 08:54

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!