人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

他のコンピュータで使用できていたRight()関数ですが、コンパイルエラーが出ます。

他に、宣言(Dim *** As Integerなど)が無い変数も使えなくなったので、これはSub +++()の後にDimによる宣言を追加することで対応できました。

表現を厳密にすることを要求されているようです(エクセルバージョンの違い?)が、Right()といった関数を使用するにはどうすれば良いでしょうか?

●質問者: ReoReo7
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:as sub VBA エクセル エラー
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● fuentebella
●27ポイント

たぶん参照設定に問題があると思います。

Visual Basic Editorのツールの参照設定のチェック項目を、うまく動くパソコンとエラーになるパソコンで比べてみてください。

http://okwave.jp/qa1585038.html

も参考になります

◎質問者からの返答

どうも、ありがとうございます。


2 ● van-dine
●27ポイント

Option Explicitと書いてある行が見つかるはずです。

それを消せば、なんとかなりそうです。

◎質問者からの返答

どうも、ありがとうございます。


3 ● airplant
●40ポイント ベストアンサー

参照設定の問題とすると、他のVBA系の関数(Left, Day, Intなど)も全滅のはずですが、それはどうなのでしょう?

ちなみに、Right()は、デフォルトでは次の場所にあります(Office2003の場合)。

ライブラリそのものを間違って消してしまったということはないですよね?

ライブラリ: VBA

ライブラリのデフォルトの場所:C:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\VB

クラス:Strings

メンバ:Right


>他に、宣言(Dim *** As Integerなど)が無い変数も使えなくなったので

これは、#2の方がおっしゃっているように「Option Explicit」の記載有無により違って来ています(ツール→オプション→編集)。

今回エラーとなった環境では、「変数の宣言を強制にする」でソースを触り、自動的に「Option Explicit」が入ったものと思われます。


なお、変数の宣言強制は、指定したほうが後でバグが出にくく、良い効果があると思われるます。

例えば、「Option Explicit」がない場合は、変数名の打ち間違いをしても気づかず、0が代入されて処理が続行します。つまり全く別変数に扱われます。デバッグしていても中々分かりません。

しかし、「Option Explicit」がある場合は、即エラーになってくれます。

例えば、次のような場合。

 optValue = ....
 if optValeu > 100 then ' 絶対にTrueにならない

大文字と小文字を混ぜた変数名にし、入力時は全部小文字で入れ、別な行に移ったときに一部が大文字になることを確認してタイプミスを自動判定するのが常套手段です。


又、ご存知と思いますが、型は必須ではなく、変数を定義だけでも大丈夫です(Variantになります)。

 Dim optValue
◎質問者からの返答

どうも、ありがとうございます。

ライブラリに触った覚えはないので、大丈夫だと思います。

さて、ご指摘の件ですが、DLLエラーとなり、調べたところ参照設定の

参照不可:Ref Edit Control

となっていますね・・

このエラーを何とかする方法はありませんでしょうか?

別質問にて行ってみたいと思います。

これにて質問終了させて頂きます。ありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ