Windows98の下でVisualBasic 6 Professional を使い
Form上にLabel1を置いて
Label1.Caption = "任意の文字列" & Chr$(13) & "任意の文字列"
として実行するとChr$(13)の部分を指してコンパイルエラーが起こり
「プロジェクトまたはライブラリが見つかりません」と、表示されます。
Windows2000の下では起こらなかった事です。どういう訳でしょうか。
どうすればいいのでしょうか。
Access あたりを参照設定しているのでは?
参照設定の優先順序を変更してみて下さい。
かいとうルペン 様、早速のご回答有り難う御座います。
実行途中で、3〜5行ほど表示できる Label(Width は漢字が8文字くらい表示できる幅があると思う) の内容を
貴方の氏名
貴方の住所
貴方の年齢
と、したいだけなので、Label1.Caption = "貴方の氏名" & Chr$(13) & "貴方の住所" & Chr$(13) & "貴方の年齢" としたのですが。
これが、どこかを参照していることになっているのでしょうか?
また、「Access を参照設定する」とは、どういうことなのでしょうか?
VB歴1年に満たない、「困ったちゃん」に今一つ、ご指導のほど、よろしく御願い致します。
Label1.Caption = "貴方の氏名" & VBA.Chr$(13) & "貴方の住所" & VBA.Chr$(13) & "貴方の年齢"
のようにしてみてはどうですか?
っていうか、 vbTab でいいんじゃないの?
じゃなくて、 vbCrLf (or vbCr or vbLf) ですね。
かいとうルペン 様、有り難う御座いました。でも、chr$(13)とvbCrとでは、どうしてこういう差が出てくるのでしょうか。どっちでもいいような感じではありますが。VBの世界って、ほんとに暗くて、広くて、足を踏み外しやすい世界なんですね。これからもよろしく御願い致します。
> chr$(13)とvbCrとでは、どうしてこういう差が出てくるのでしょうか。
どっちも同じ意味です。が、Chr関数は"関数"である以上、vbCrなどの"定数"より展開される速度が遅いです。
この場合関数にしなければいけない必要がないので(理由というのは、forループで文字を出力していく場合など)、vbCrなどの"定数"を使ったほうがいいでしょう。
> VBの世界って、ほんとに暗くて、広くて、足を踏み外しやすい世界なんですね。
VBの というより、プログラミングって下手をするとそういうものだと思いますよ。
VBは、テクニカルなことができないようになっているぶん、とても足を"踏み外しにくい"ようになっていると思います。
(わたしは足を"踏み出したく"なってしまって、今VBを使ってないんですけど…)
ちょっとしたお料理かなにかのつもりで、取り組んだほうが楽ですよ(^o^)
最初っから萎縮してちゃ、いい結果は出ませんし。
> テクニカルなことができないようになっているぶん
できない じゃなくて、"できなくはないけど、とてもしづらいようになっている"ですね。
(まあ、"できない"と言い切ってしまうと、問題がありそうだったので、訂正)
実際VBの限界を引き出せば、できることはかなり多いです。できないことのほうが、割合少ないくらいのように思えます。
まあ、他の言語に比べて、材料が少ないので、
全部一から作らなくてはいけなく、大変なこともあるでしょうけど…。
そのぶんVBが一番勉強にはなると思います。がんばってくださいね。
> 「プロジェクトまたはライブラリが見つかりません」
のエラーが出た直接の原因は、次のようなことだと思います。
オブジェクトブラウザで "Chr" を検索してみて下さい。
ライブラリ "VBA" 以外でも "Chr" が定義されてあるものがあるのではないですか?
それに対して、 "vbCr" は "VBA" でしか定義されていないのでしょう。
その為、 "vbCr" を使用するとエラーは発生しないが、
"Chr" を使用するとエラーが発生していたのではないかと思います。
たかみさん、貴重な御意見有り難う御座いました。なにか哲学的な匂いのする話まで、お聞かせ下さり、うきうきしてきました。VBって、それ以前の言語に比べると、ほんと、便利なんで、つい基本を忘れてた(関数か定数か)。
ルペンⅢ世さん、目から鱗、耳から洪水。そうなんです。そうなんですよ。自分の馬鹿をみっけました。ありがとうございました。プログラミングの旅ってのは自分の無知を探しに行く楽しみと知りました。ちゃんちゃん。
ところで同じエラーが environ() でも出るのですが、これはどうしたわけ?
それも Windows2000 では出ずに Windows98 でだけ出るんです。
ルペンⅢ世さん、「参照設定」の意味が分かりました。参照不可のマークのついた DLL の所在が・・・・・・・自分でも信じれぬ馬鹿をやるもんですね
> として実行するとChr$(13)の部分を指してコンパイルエラーが起こり
> 「プロジェクトまたはライブラリが見つかりません」と、表示されます。
正常な環境では起きません。あきらかに異常な状態ですね。(^^;
その現象がでる場合は、「タイプライブラリ情報の破損」が考えられます。
VB6でしたら、開発環境の[ツール]-[参照設定]メニューを開いてみてください。
その中に、"参照不可"と書かれている項目はありませんでしょうか。
もしあれば、そのライブラリが無い事が原因です。
参照不可項目が無い場合は、まず、参照設定を片っ端から外してみてください。
(項目によっては、チェックを外せない物もありますけれどね)
そして参照設定を一通り外し終わったら、一度プロジェクトを
保存して閉じてから、再度開きなおしてみてください。その上で、
先ほど外した参照設定項目を、一つ一つ、もう一度チェック
しなおしていってみてください。状況にもよりますが、これで
解決できる場合があります。
# もし、上記の事を試してみてもエラーが解消しないようであれば、
# そのプロジェクトで利用しているコンポーネント(ActiveXコントロールや
# 参照設定している項目など)を教えてください。m(_ _)m
> ところで同じエラーが environ() でも出るのですが
ライブラリ名を省略せずに書いた場合はどうなりますでしょうか。
例えば、Chr$() ではなく、VBA.Chr$() や VBA.Strings.Chr$() に
してみたり、Environ() を VBA.Environ() や VBA.Interaction.Environ() と
記述してみて下さい。エラー内容に変化は現れますでしょうか?
うっ……回答を書いているうちに自己解決されてしまったようですね。(汗
ツイート | ![]() |