質問: bgyo + 23 next n else msgbox "アクティブセルが日付にありません。" exit sub end if end sub excelが落ちるのはこれを実行した後のみ時々起きますので 私が作成した内容に何か問題があるのだと思うのですが 調べても判りません・・・・ この内容で情報は足りるでしょうか? よろしくお願いします。
回答: こんばんは。 >userformは使わないほうが安全と言う事ですか? いえ、そういうわけではないのですが......。昔、いろいろ検討した結果、userformは、workbookの付属品としての域を越えない使い方をすればよい、ということに落ち着きました。つまり、vbのようには使ってはいけない、ということです。 例えば、 excelでしたら、worksheet -> userform ->worksheet というような順路で使うようにする、ということです。起動したら、userformが前面に出たり、userformから、いきなりアプリ終了というのは、vba外のシステム・エラーが発生することがあります。 通常のマクロコードのレベルでは、今回のようなエラーは発生しないはずです。 >”不自然なコード”よろしければ教えてもらえませんか? >殆ど独学で身近に聞く人がいない為、知らないで”絶対やっちゃダメ”な事とか >してるのでは?と不安に思っています。 そんなに心配ないです。#1さんがおっしゃっていた部分で十分だと思います。 良いサンプルコードを見て真似する内に、だんだん、身についてきます。ただ、ここのokwaveで見られるコードは、書き込み文字数の制限があるので、書き方を変形していることが多いです。 それと、整数型で、long型を使うのは、32bitosの場合、16bitのinteger型は内部で32bit変換されながらコードが実行されるので、32bitのlong型のほうが、オーバーヘッドがない分、高速であるといわれるからです。byte型は、例えば、unicodeとか、2byte文字とか、shift jisの文字が、内部がどうなっているか、という時にバイトに別けて扱うものです。 もう一つ、あまり気にする話ではないのですが、プロシージャ名は、なるべくアルファベット(英語)のほうが良いと言われています。漢字の中で1つ2つエラーが生じるものがあると言われていますが、むしろ、officeのversionが二種類以上入っている環境時に、検索時等で、日本字が文字化けするからです。ただ、こういう問題は、プロレベルの人の話です。 ここで勉強されると良いと思います。 武藤玄という人のexcel大事典 参考url:http://home.att.ne.jp/zeta/gen/excel/