EXECL2002 SP3を使っています。
B2からB99まで数式が入力されています。
この数式の結果はリアルタイムで変わります。
このリアルタイムデータを、
記録するマクロを作成したいと考えています。
9時1分から20時1分まで3分毎にデータを取得し、
C列、D列、E列、と列をずらしながら記録していきます。
以下のようなイメージになります。
☆数式の状態
A B
1 =now
2 東京 =tokyo.temperature
3 千葉 =kanagawa.temperature
4 埼玉 =saitama.temperature
☆9時1分のシートの状態
A B C
1 9:01 9:01
2 東京 11.5 11.5
3 千葉 11.9 11.9
4 埼玉 10.8 10.8
☆9時4分のシートの状態
A B C D
1 9:04 9:01 9:04
2 東京 11.6 11.5 11.6
3 千葉 12.1 11.9 12.1
4 埼玉 11.0 10.8 11.0
☆9時7分のシートの状態
A B C D E
1 9:07 9:01 9:04 9:07
2 東京 11.8 11.5 11.6 11.8
3 千葉 12.4 11.9 12.1 12.4
4 埼玉 11.1 10.8 11.0 11.1
上記の作業を実現できるマクロを
教えていただけませんでしょうか。
よろしくお願いいたします。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
分かりにくそうな所の一例です
現在時から
t_str = Now
3秒ごとに"test_01"を実行
t_str = t_str + TimeValue("00:00:03")
1分過ぎると終了
t_end = Now + TimeValue("00:01:00")
のマクロです
#1さんの回答も参考にしてアレンジしてください
'-----------------------------------------------------------
Sub test_00()
Dim t_str, t_end As Date
t_str = Now
t_end = Now + TimeValue("00:01:00")
Do
Application.OnTime EarliestTime:=t_str, Procedure:="test_01"
t_str = t_str + TimeValue("00:00:03")
Loop Until t_str > t_end
End Sub
'-----------------------------------------------------------
'-----------------------------------------------------------
Sub test_01()
MsgBox "コピー処理"
End Sub
'-----------------------------------------------------------
質問の仕方に一言
一般的ではないものや、紛らわしいものにはコメントをつける等の心遣いを
>=now
関数で()を忘れたのかVBAで書き出しているのか紛らわしい
>=tokyo.temperature
この数式は標準でEXCELにない
表の数値ですが、temperature=気温が一般的ではないので、単位を付ける等、説明が必要では
最後に
>この数式の結果はリアルタイムで変わります
がちょっと気になります
OnTimeはEXCELで何か処理をしていると、待機しますのでデータの更新の方法によっては、処理されない?可能性があります
No.2
- 回答日時:
何分間隔で実行など、VBAでも上級の課題だ。
エクセル本来の処理を超えている。それを課題を丸投げしていて、回答者にコードを書いてくれということになるが、それは規約違反。ただしこの課題は有名なものなので、
「何分間隔で実行」のコードは、「何分間隔で実行 VBA」でWEB照会すれば載っている。調べてみること。
1例
http://www.asahi-net.or.jp/~zn3y-ngi/YNxv214.html
タイマーを使った制御
あるいはOnTimeで照会。
ーー
右の列に順次追加していくのだけ載せておく。手始めにはコマンドボタンをシートに1つ貼り付け、そのクリックで実行されるコードをテストで確かめるべきだ。
Private Sub CommandButton1_Click()
c = Range("iv3").End(xlToLeft).Column
MsgBox c
d = Range("A65536").End(xlUp).Row
MsgBox d
Range(Cells(1, "A"), Cells(d, "A")).Copy Cells(1, c + 1)
End Sub
A列にデータを入れて、ボタンをクリック、次にA列のデータを変えてクリックで、右端列の次に追加される様子が納得できるでしょう。後は
Private Sub CommandButton1_Click() をSub Test01() などに変えて、タイマーのコードから実行するマクロとして書けばよい。
No.1
- 回答日時:
今現在は手作業で行っているのでしょうか。
マクロの記録でほとんど作成されると思います。
B列は関数で準備します。マクロの記録開始して
3分たったら、C列をコピィ D列に数式をコピィ、C列へ値でコピィ
再計算
上記で作成されたマクロを3分単位で繰り返すには
ONTIMEコマンドで実現できます
Application.OnTime Now + TimeValue("00:03:00"), "Macro1"
こんな感じで使用します。
http://www.moug.net/faq/viewtopic.php?t=34886
この回答への補足
ありがとうございます。マクロの記録を使って、以下の検証マクロを作ってみました。
ただこれでは逆おくりになりますので、他の方の意見も参考にして、手を加えてみます。
Private Sub Macro1()
Range("B2:B96").Select
Selection.Copy
Range("C2").Select
Selection.Insert Shift:=xlToRight
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Columns("C:C").Select
Application.CutCopyMode = False
nextTime = Now() + TimeValue("00:03:00")
Application.OnTime nextTime, "Macro1"
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのマクロを教えてください。 1 2022/03/30 09:29
- Excel(エクセル) エクセルのマクロで置換を教えてください 1 2022/05/19 10:27
- Excel(エクセル) 表示形式、文字列セル(列)に数式を入力するには マクロ 1 2022/09/18 10:53
- Excel(エクセル) マクロか関数で処理したいのですが、教えて頂けませんか。 8 2022/10/31 15:18
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Excel(エクセル) Excel_マクロ_複数のシートのVLOOKUPで表示された#N/A以外に色付けをしたいです 1 2023/02/16 22:37
- Excel(エクセル) マクロだと数式が表示される 2 2022/09/10 14:48
- Visual Basic(VBA) Excel VBA 転記について 2 2023/02/28 08:34
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 1 2023/02/27 22:21
- Visual Basic(VBA) vbaについて 主に以下のような設定をしたいです。 Aブックの表の行数が20未満だったら Bブックの 1 2023/06/08 23:40
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで離れた列を選択して...
-
えABのある列って
-
LEFT関数とIF関数の組み合わせ...
-
CSVファイルの「0落ち」にVBA
-
土日の列幅の自動変更を教えて...
-
エクセル 重複したデータを別...
-
VBAで別ブックの列を検索し、該...
-
最終行に合計(最終行が列によ...
-
エクセル 選択するマクロ
-
オートフィルターの複数抽出と...
-
VBAで結合セルを転記する法を教...
-
データシートビューのタイトル...
-
百マス計算の引き算作り方を教...
-
Excel2007で行の列をひとくくり...
-
アクセス 取り込み時に、桁数(...
-
エクセルマクロでオートフィル...
-
csvデータの列の入れ替えができ...
-
エクセルマクロ、アウトライン...
-
Excelの行数、列数を増やしたい...
-
エクセルでB列とD列を比較させ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで離れた列を選択して...
-
VLOOKUPの列番号の最大は?
-
「段」と「行」の違いがよくわ...
-
LEFT関数とIF関数の組み合わせ...
-
VBA 指定した列にある日時デー...
-
CSVファイルの「0落ち」にVBA
-
エクセルで複数列の検索をマク...
-
Excelの行数、列数を増やしたい...
-
エクセルマクロの組み方
-
エクセルマクロPrivate Subを複...
-
リストからデータを紐付けしたい
-
エクセルのソートで、数字より...
-
エクセルで住所を県と市・郡と...
-
VBAで別ブックの列を検索し、該...
-
VBA
-
Excel文字列一括変換
-
エクセル 重複 隣の列 一番...
-
列方向、行方向の定義
-
Alt+Shift+↑を一括で行うには、...
-
VBAで結合セルを転記する法を教...
おすすめ情報