EXCEL2007を使用しています。
1分ごとに事前に決まっている値を足し続ける方法を教えてください。
例えば、A2セルに「3」が入力されているとします。
9時から11時までの間、1分ごとに3を足し続けて計算結果をB2に表示したいのです。
つまり、9時にはB2セルはゼロで、9時1分にはB2セルは3、9時2分にはB2セルは6、9時3分にはB2セルは9,・・・というふうにしたいのです。
そして、11時まで計算したら、今度は、12時半から15時までB2セルの値に3を足し続けたいのです。
どなたか教えていただけないでしょうか?
なお、上記の例では3を足し続けることになっていますが、何を足すかはその日によって変わります。
従いまして、A2セルの値を足し続けるようにしたいのです。
よろしくお願いいたします。
なお、私はVBAは初心者レベルです。
もし比較的簡単にワークシート関数だけでできるようでしたら、そちらも教えてください。
よろしくお願いいたします。
No.2
- 回答日時:
VBAを使わない方法
D2:F2セルに 0
F3セルに E3-D3
下へオートフィル
現在時刻の取得
B1セルに =TEXT(NOW(),"h:m:s")*1
B2セルに
=IF(MATCH(B1,D:D)=MATCH(B1,E:E),INT(1440*SUM(F1:INDEX(F:F,MATCH(B1,E:E))))*A2,
INT(1440*SUM(F1:INDEX(F:F,MATCH(B1,D:D)-1),B1-LOOKUP(B1,D:D)))*A2)
開始時刻と終了時刻外ならば 該当する時間(F列)まで足して分に換算(*1440)し、
整数化を行って×A2セル
開始時刻と終了時刻内ならば、該当する時間(F列)の一つ前までと
現在時刻から該当する開始時刻を引いて足す。
そして、分に換算(*1440)し、整数化を行って×A2セル
データ-外部データの取り込み-新しいWebクエリ
(インターネットにつながっていない場合は、「新しいデータベースクエリ」で
自分のブックを参照する手段もあります)
添付図のようにチェックして[取り込み]
プロパティで
定期的に更新する 1分ごと [OK]
●新規ワークシート
そのシートは非表示にしてもよい
書式は適宜変更してください
CoalTar 様
ご回答ありがとうございます。
式の解説がとてもわかりやすかったです。
また、添付図もわかりやすかったです。
この度は、ありがとうございました。
No.3
- 回答日時:
>もし比較的簡単にワークシート関数だけでできるようでしたら、そちらも教えてください。
関数で表示するなら、たとえば以下のような数式を入力します。
=INT((MIN(NOW()-TODAY(),"11:00"*1)-"9:00")*24*60+((MIN(NOW()-TODAY(),"15:00"*1)-"12:30")*24*60))*A2
上記の数式は、どこかのセルを変更した場合に自動的に計算しなおしますが、もしシートに変更がない場合はF9キーを押して再計算する必要があります。
また、9:00以降の数式ですので、9:00以前の場合はマイナスの値になりますので、以下のようにIF関数などを使って「0」になるようにしてください。
=(元の数式)*(NOW()-TODAY()-"9:00">0)
No.4ベストアンサー
- 回答日時:
ワークシートを開き、
1.開発メニューから、VisualBasicを呼び出します。
2.メニューから、挿入、標準モジュール、で出てきた白い広い部分に以下のコードをコピペします。
Sub test01()
With Sheets("Sheet1").Range("A1")
.Value = Time
.NumberFormatLocal = "h:mm:ss"
End With
Application.OnTime Now + TimeValue("0:00:01"), "test01"
End Sub
3.ワークシートへもどります。
4.メニューから、ツール、マクロ、マクロで出てきたマクロ名(test01)を選択して実行します。
これでSheets("Sheet1")のA1に毎秒ごとに時刻が表示されます。
ここまでできたら、A1,B1,C1,D1に以下の時刻を入れ、
09:0011:0012:3015:00
F1に以下の数式を入れます。
=IF(A1<B1,0,IF(A1<C1,HOUR(C1-A1)*60+MINUTE(C1-A1),IF(A1<D1,HOUR(C1-B1)*60+MINUTE(C1-B1),IF(A1<E1,HOUR(C1-B1)*60+MINUTE(C1-B1)+HOUR(E1-A1)*60+MINUTE(E1-A1),HOUR(C1-B1)*60+MINUTE(C1-B1)+HOUR(E1-D1)*60+MINUTE(E1-D1)))))
A1に3を入れて、B1に以下の数式を入れます。
=A2*F1
ちなみに、その時の時刻が、9:00以降前だったら、エラーになりますのでご注意下さい。
マクロの許可や、実行を伴うエクセルファイルの保管や起動は、マクロ操作に慣れていないとかなり面倒なので、頑張って下さい。
ファイルの保存は、拡張子が.xlsmになります。
aokii 様
ご回答ありがとうございます。
非常に親切かつ丁寧に解説されていて、VBA初心者の私でも良くわかりました。
この度は、本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
vbaで指定したセルより下の行を...
-
Excelマクロ セルを行頭に移動
-
エクセルマクロで「セルのサイ...
-
エクセル:セルの色のコード番...
-
VBAでの SendKeysの変数指定方法
-
Excel VBA:フォーム←→セルのア...
-
セルをクリックしたら色を変え...
-
エクセルでセルをクリックする...
-
ファイルサーバー上のexcelファ...
-
excel マクロでの特殊文字入力方法
-
Excel VBA で色付きのセルの値...
-
【Excel VBA】結合セルのデータ...
-
写真貼り付けを3列で折り返したい
-
【マクロ】1つのセルから結合...
-
EXCELに画像を貼り付けマクロの...
-
Excelでプルダウンからフィルタ...
-
ダブルクリックでセルに色をつ...
-
エクセル マクロ 線対称・点...
-
【EXCEL-VBA】特定の値の入った...
-
マクロのデータ削除
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
vbaで指定したセルより下の行を...
-
Excel VBA:フォーム←→セルのア...
-
Excelマクロ セルを行頭に移動
-
VBAでの SendKeysの変数指定方法
-
エクセルでセルをクリックする...
-
ファイルサーバー上のexcelファ...
-
マクロのデータ削除
-
エクセルマクロで「セルのサイ...
-
セルをクリックしたら色を変え...
-
【VBA】アクティブセルだけ背景...
-
Excelでプルダウンからフィルタ...
-
Excel VBA で色付きのセルの値...
-
ExcelVBA コンボボックスに入力...
-
ダブルクリックでセルに色をつ...
-
IF関数で違う値もTRUEになる
-
VBA Rangeの足し算
-
エクセル:セルの色のコード番...
-
【マクロ】1つのセルから結合...
-
excel マクロでの特殊文字入力方法
-
Excelで数値の変化をカウントし...
おすすめ情報