[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『【再度のお願い】カレンダーから日付入り表を作成したい』(mie)
よろしくお願いします。
「カレンダー」シートに1日1セル(書式"d")で年間カレンダーがあります ある日付をクリックし、マクロを発動させたら 「今月」シートの「日付」と入力してあるセル(場所は不定) にカレンダーシートの選択した日付をコピーしたいのですが、 どのようにしたらできるでしょうか。 ご指導ください。
< 使用 Excel:Excel2010、使用 OS:Windows7 >
Sub Macro1()
Dim r As Long, c As Long
r = Sheets("今月").Cells.Find(what:="日付", lookat:=xlWhole).Row c = Sheets("今月").Cells.Find(what:="日付", lookat:=xlWhole).Column
Sheets("今月").Cells(r, c) = Format(ActiveCell, "yyyy/m/d")
End Sub
みたいなことでしょうか?違っていたらすいません。 (se_9) 2015/01/15(木) 13:13
完璧に動きました。 お世話になりました。 (mie) 2015/01/15(木) 13:33
追加で教えていただけないでしょうか。 se_9さんのマクロで日付をコピペできましたが カレンダーのポイントした部分と日付をコピペした部分を ハイパーリンクでつなぎたいのですが、可能でしょうか? カレンダー部分の日付をクリックしたら 飛ぶようにしたいのですが。 よろしくお願いします。 (mie) 2015/01/15(木) 17:42
セルにハイパーリンクを設定する作業をマクロの自動記録してみてください。 後は、自動記録のコードを修正してFindメソッドで取得したセルのアドレスを埋め込むようにします。 (カリーニン) 2015/01/15(木) 21:12
ご指導ありがとうございます。 職場PCなので、日中トライしてみます。 できるかどうか不安ですが 結果報告しますので またご指導ください。
(mie) 2015/01/16(金) 06:49
下記のマクロで無事動きました。 Sub テスト() Dim r As Long, c As Long
r = Sheets("今月").Cells.Find(what:="日付", lookat:=xlWhole).Row c = Sheets("今月").Cells.Find(what:="日付", lookat:=xlWhole).Column
Sheets("カレンダー").Select ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _ "今月!r:c"
Selection.Font.Bold = True Sheets("今月").Cells(r, c) = Format(ActiveCell, "yyyy/m/d")
End Sub 動くのはこれで動いておりますが 内容的に問題ないでしょうか? よろしくお願いします。 (mie) 2015/01/16(金) 10:03
ぱっと見で実機で試してませんが、
>"今月!r:c"
はまずいようにおもいます。
サンプルです。
Sub test()
Dim r As Long, c As Long Dim rng As Range Dim wsA As Worksheet Dim wsB As Worksheet Dim accel As Range
Set wsB = Worksheets("カレンダー") Set accel = ActiveCell
Set wsA = Worksheets("今月") Set rng = wsA.Cells.Find(what:="日付", lookat:=xlWhole)
wsB.Hyperlinks.Add Anchor:=accel, Address:="", SubAddress:= _ "今月!" & rng.Address(0, 0)
accel.Font.Bold = True rng.Value = Format(accel.Value, "yyyy/m/d")
Set accel = Nothing Set rng = Nothing Set wsA = Nothing Set wsB = Nothing End Sub (カリーニン) 2015/01/16(金) 12:19
あるいは、↓のような感じでも。
Sub test2()
Dim r As Long, c As Long Dim rng As Range Dim wsA As Worksheet Dim wsB As Worksheet Dim accel As Range
Set wsB = Worksheets("カレンダー") Set accel = ActiveCell
Set wsA = Worksheets("今月") Set rng = wsA.Cells.Find(what:="日付", lookat:=xlWhole) r = rng.Row c = rng.Column
wsB.Hyperlinks.Add Anchor:=accel, Address:="", SubAddress:= _ "今月!" & wsB.Cells(r, c).Address(0, 0)
accel.Font.Bold = True rng.Value = Format(accel.Value, "yyyy/m/d")
Set accel = Nothing Set rng = Nothing Set wsA = Nothing Set wsB = Nothing End Sub (カリーニン) 2015/01/16(金) 12:23
返信ありがとうございます。 私がどこか間違えているようで 教えていただいた、内容ではいずれも エラーが出てしまいます。 もう一度、一からやりなおしてみますので 少々お時間を下さい。 (mie) 2015/01/17(土) 04:17
>エラーが出てしまいます。
どのようなエラーでしょう? どのようなエラーメッセージが出ますか? エクセルが発するエラーですか? VBAが発するエラーですか? VBAが発するエラーでしたらコードのどこで出てますか? (カリーニン) 2015/01/17(土) 08:51
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.