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

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

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

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

Q&A

解決済

2回答

507閲覧

VBA IF条件が正しく表示されない

jessie

総合スコア13

VBA

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

0グッド

0クリップ

投稿2018/10/25 05:05

前提・実現したいこと

13列目が”二次選考”で15列目が”待ち(調整済)”となっていれば
14列目に”その日付”が入っているので、それを指定の場所に表示させたい。
同じように
13列目が”内定面談”で15列目が”待ち(調整済)”となっていれば
14列目に”その日付”が入っているので”内定面談”の日付を指定場所に表示させたい

発生している問題・エラーメッセージ

"二次選考" は"二次選考" と"待ち(調整済)" の日付が面接日に入力されるのに対し "内定面談"と"待ち(調整済)" は内定面談のところに正しく表示されず、 "内定面談"と"待ち(調整済)" がないところにまで表示されてしまいます。

該当のソースコード

'二次選考 If Cells(i, 13) = "二次選考" And Cells(i, 15) = "待ち(調整済)" Then 面接日 = Cells(i, 14) End If '内定面談 If Cells(i, 13) = "内定面談" And Cells(i, 15) = "待ち(調整済)" Then 内定面談 = Cells(i, 14) End If

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2018/10/25 05:27 編集

その部分だけなら問題がないように見受けられますので、コード全体(Sub~End Subまで)を可能な限り開示されると良いと思います。あとF8キーでステップして何処の行を流れているのか。ある時点で変数に何が入ったのか。を見れば原因は自力で特定できると思います。
guest

回答2

0

ベストアンサー

前後の処理が提示されていないので正確なことはわかりませがん、おそらくループで回している処理と思われます。
面接日内定面談はループ内の先頭で初期化していますか?
初期化していないと前回のものが残ってしまいます。
下記はサンプルです。
何で初期化したらいいのかわからないので仮に空文字にしましたが、適宜修正してください。

VBA

1' 初期化 2面接日 = "" 3内定面談 = "" 4 5'二次選考 6If Cells(i, 13) = "二次選考" And Cells(i, 15) = "待ち(調整済)" Then 7 面接日 = Cells(i, 14) 8End If 9 10'内定面談 11If Cells(i, 13) = "内定面談" And Cells(i, 15) = "待ち(調整済)" Then 12 内定面談 = Cells(i, 14) 13End If

投稿2018/10/25 05:36

ttyp03

総合スコア16998

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

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

akirafudo6

2018/10/25 05:46

普通定義名に日本語文字は使わないのが定石ですけど、たとえば、面談日って、日付ですね? でしたら、typeは、dateだと思いますが、そこに、""いれるのはエラーだと思います。 提示してあるサンプルでは、簡潔されてないので、読み取れません。利用しているitemは定義も含めて 記述してください。 面接日であれば、 dim 面接日 as date とか?
ttyp03

2018/10/25 05:50

日本語使う使わないは自由だと思いますけどね。 日本語で書くことでわかりやすいこともありますし。 自分は使いませんが。 初期値は仮ですから、何を入れるかは質問者さんにお任せしています。 日付とはいっても文字列で入っている可能性もありますしね。 要は情報不足ですね。
akirafudo6

2018/10/25 06:00

>日本語使う使わないは自由だと思いますけどね。 自由ですよ。一般論として言っただけです。日本語COBOL(IDLⅡ)とかありますけど 結構パンチ量が増えて、腱鞘炎になりそうになります。 >日本語で書くことでわかりやすいこともありますし。  これは、工夫ですよ。日本語にしても、文字列長くなりすぎて、帰って命令が一行で治まらず 複数行にまたがってしまう場合があります。そうなるとかえって見ずらくなります。もう、ソース がぐちゃぐちゃになります。 >日付とはいっても文字列で入っている可能性もありますしね。 要は情報不足ですね。  意図とした動きをしてないとのことなので、別の意味かもしれないですね。
TanakaHiroaki

2018/10/27 09:03

ttyp03さんに回答していただいた変数の初期化が解決につながったのであれば、 素直に感謝の意を表すべきでしょう。 日本語の変数を使うことの良し悪しは、ご質問の解決手段と無関係だと思います。 (私も日本語の変数は極力使用しないようにしています。)
TanakaHiroaki

2018/10/27 09:06

akirafudo6さんは、質問者ではなかったのですね。 失礼いたしました。
guest

0

if分の中 これ何?
面接日 = Cells(i, 14)
内定面談 = Cells(i, 14)

投稿2018/10/25 05:33

akirafudo6

総合スコア341

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問