[[20100518110405]] 『changeイベントについて』(VBA初心者) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『changeイベントについて』(VBA初心者)

 皆様、よろしくお願いします。
 changeイベントで、下記のようにA1:B10までの区分に『遅刻』と『早退』以外がプルダウンから
 選択された場合に、J1:L10のセルへ =G1-C1+1という数式を入れ”書式を標準”にしたいのですがそんなことはできませんでしょうか?

    A    B    C ・ ・ ・ J K L
 1  有休                  =G1-C1+1(書式を標準にして数式を入れたい)
 2  遅刻        

 前回の
[[20100510114549]] 『選択されたら数式復活』(VBA初心者)
 と同じ方ではありませんか?

 いずれにしても参考にならなかったでしょうか?
 であればとても残念ですが。

 特定のセルの値が○○だったら。
 という条件のIf判定のコードは、過去ログに山ほどあります。

 書式の設定はマクロの記録で得られます。

 数式を入れるのは上のログでわかると思います。

 まずは色々試してわからない所を質問されてみてください。

 (momo)

momoさま

 以前、お教えいただいたことは、大変参考になっております。絶対参照的なVBAの記述方法などは初めて見ましたので、勉強になりました。

 しかしながら、過去ログ等も検索させていただいたのですがIF文の文法みたいなのはわかるのですが、
 vbaを使いだして間もないものですから、条件式をコードで作成するところが調べて部分的にわかっても、
 1つにできる知識もないので四苦八苦しております。

 まだ、レベルが低すぎて似たようなのを参考にして作成できるところまでも達していない状態で、お恥ずかしいです。
 そんなことから、すべてをお聞きしてしまい申し訳ありません。
 現在は、基本用語を覚えているレベルですので、少しづつでも勉強を進めていきたいと思います。(vba初心者)

 たとえば

 ・A1セルの値が「遅刻」以外なら
 という条件の場合

 まずA1セルの値というのを取得するのに
 Range("A1").Value でA1セルのValueプロパティを参照します。
 それが「遅刻」以外なら。なので

 If Range("A1").Value <> "遅刻" Then

 となります。
 かつ、「早退」以外なのでAND条件ですよね?
 ですから

 If Range("A1").Value <> "遅刻" And Range("A1").Value <> "早退" Then

 というようになります。
 1つづつ調べてものにしていきましょう。

 と、VBAの話は続けても構わないのですが
 シートの作成方法や考え方に少し疑問があります。
 前回もそうでしたが、条件によって数式を入れるのではなくあらかじめ
 =IF(AND(A1<>"遅刻",A1<>"早退"),G1-C1+1,"")
 というような数式を入れておくのではダメなのですか?

 勝手に書き換えてしまう人が居るなどの問題は、組織内での教育や
 表の作り方でなんとでもなる事だと思いますので、それをシステムとして
 考慮するべきことだとは思えません。

 例えば、J1セルには手入力欄をあらかじめ用意する。
 J1に何もなければ計算値を出してJ1に何か値があればその値を表示するように
 =IF(J1<>"",IF(AND(A1<>"遅刻",A1<>"早退"),G1-C1+1,""),J1)
 などの数式を入れておけばどちらでも対応できると思いますが。

 (momo)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.