質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

2回答

1205閲覧

エクセルVBAについての質問です

退会済みユーザー

退会済みユーザー

総合スコア0

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2016/03/07 01:01

編集2016/03/07 01:59

エクセルVBA初心者です。よろしくお願いします。シフト表を作成しています。
休憩開始時間をセルN7に入力すると・・・

N8セル =IF(N7="",TIME(0,0,0),(N7+TIME(1,0,0)))

関数を入れて休憩終了時間の入力する手間を省いています。

シフト表なので、N7、P7、R7・・・BV7まで(31日分)
N10、N13、N16・・・N109まで(35人分)

関数を使わず、VBAで計算する方法はありますでしょうか?

皆様の知恵をお借りしたいと思います。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hato_pato

2016/03/07 01:16

VBAで関数の代わりのコードを書けばよいだけなので可能です。 関数ではなく、VBAで計算させたい理由はなんでしょう? あとExcelのシフト表の形式について情報がないと、 どうなれば正解なのか分からないと思います。 開示できる範囲で情報追加をお願いします。
退会済みユーザー

退会済みユーザー

2016/03/07 01:58

VBAで計算した理由は、通常の休憩時間は1時間ですが、30分の場合もあるためです。 そのため、関数が入っているセルにはロックをかけてありますが、30分入力の場合、手間になると考えています。 ・休憩時間を入力すると、プラス1時間計算される ・休憩時間が入力されていないときは、空欄 以上の様な処理をしてほしいと考えています。
hato_pato

2016/03/07 02:26

休憩する時間を入力するということですか? 休憩する時間を休憩終了時間に足せばよい?
退会済みユーザー

退会済みユーザー

2016/03/07 02:37

はい!その通りです!
guest

回答2

0

休憩時間の入力方法がわからないのでなんともですが、↓な感じの関数ではだめですか?

■分入力(60分、30分)の場合
N8セル =IF(N7="",TIME(0,0,0),(N7+TIME(0,[休憩時間入力セル],0)))

■時間入力(1時間、0.5時間)の場合
N8セル =IF(N7="",TIME(0,0,0),(N7+TIME(0,[休憩時間入力セル] * 60,0)))

VBAは最終手段と考えた方がいいです。
便利ですが、なんでもかんでもVBAにするのは間違いです。
Excel関数で実現できることは関数で実現しましょう。

投稿2016/03/07 04:37

lilithchan

総合スコア249

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

Forループでセルを順番に処理するマクロを書く

ベタに

Dim r As Integer Dim c As Integer '35人分の処理 For r=0 to 34 '31日分の処理 For c=0 to 30 Range("N8").Offset(r,c)=目的の計算式 Next c Next r

とでもしておいて、おいおいブラッシュアップされるとよろしいかと

投稿2016/03/07 01:14

編集2016/03/07 01:15
dojikko

総合スコア3939

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問