Visual BASICで変数宣言は1行に2つ以上記述しても実際、動作します。
例 DIM A、B as Integer
このように宣言すると、AもBも整数となります。
しかし、このように宣言して、この変数を
Call サブプログラム名(B) のように、パラメ-タとして引き渡そうとするとエラーとなってしまうようです。
よくわからないまま、
DIM A as Integer
DIM B as Integer
と分けて記述したらエラーがきえたようです。
変数宣言は1行に2つ以上まとめて記述してはいけないのでしょうか?

VBは Ver 5 です。

A 回答 (1件)

DIM A,B As Integer と宣言した場合



DIM A
DIM B As Integer

と同等になり、

DIM A は

DIM A As Variant

と同等になります。

>Call サブプログラム名(B) のように、パラメ-タとして引き渡そうとすると
>エラーとなってしまうようです。

どうようなコーディングか分かりませんが、変数の型のアンマッチ等で
エラーになっているのでは?

DIM A As Integer
DIM B As Integer

を1行で宣言したい時は

DIM A As Integer, B As Integer

というように宣言します。
    • good
    • 0
この回答へのお礼

ご教示ありがとうございました。たしかに Sub プログラム の引数は、自動的に
(X As Integer,Y As Integer) と独立して表示されてでてきます。
これと同じことですね。納得できました。
今後は、DIM A As Integer, B As Integer と記述します。

お礼日時:2001/05/13 23:12

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QExcel VBAで、セルに入ってるデータ型を調べる方法は?

現在、Excel VBAでプログラムを作成しています。

Do Until ~ Loop の終了条件を
アクティブセルに入っているデータの型が文字列型の時
としたいのですが、そのようなことは可能なのでしょうか?

可能だとしたら、どのように記述したらいいのでしょうか?

当方のPCは
Win XP、Excel2003
です。

よろしくお願いいたします。

Aベストアンサー

VarType 関数を使うとか。

Sub SampleProc()

  Dim i As Long
  
  i = 1
  Do While Len(Cells(i, "A").Value) > 0
    If VarType(Cells(i, "A")) = vbString Then
      Exit Do
    Else
      ' // 処理
    End If
    i = i + 1
  Loop
  MsgBox CStr(i) & "行目で停止"

End Sub

QエクセルIF関数で0~50は"A" 51~100は"B" 0~-50は"a"  -51~-100は"b"というような式を作りたいです。

エクセル初心者で、書籍を買って勉強しておりますが、どうしても上手く出来ず困っております。
単純なIFは理解出来ましたが、応用力がなく作業がストップしてしまいました。どうか教えて下さい。

私が、作りたいのは、
セル番号が 0~50 "A" 51~100 "B" 101~150 "C" 151~200 "D"
200以上 "E"
0~-50"a" -51~-100"b" -101~-150"c" -151~-200"d"
-200以下 "e"

このように表示させるのは可能でしょうか?

Aベストアンサー

ANDというものがあります。

  =IF(AND([セル1]>=0,[セル1]<=50),"A",IF(AND([セル1]>=51,[セル1]<=100),"B",IF(AND([セル1]>=101,[セル1]<=150),"C",)))

あとはどんどん増やすだけですね。

本来、別のシートに数値とアルファベットを順に並べておいてvlookup(4番目の引数をtrueにする)の方が楽だと思います。ヘルプでvlookupを調べてみてください。

QVBAでオブジェクト変数にsetしたシートがactiveかどうかを調べるには?

標準モジュールの冒頭でワークシート用のオブジェクト変数を確保し、
あるタイミングで、あるシートをそのオブジェクト変数にSetしています。

で、そのシートに値をセットするときに、そのシートがActiveだった場合だけやりたい処理があるのですが、Setしてあるオブジェクト変数だけを見てそのシートがActiveか否かを判断する方法って、あるのでしょうか。

コード例)
Private oSheetA as Worksheet

Sub SetSheet(sName as String)
  Set oSheetA = worksheets(sName)
End Sub

Sub SetValue(nValue as integer)
  xxxxxx ←ここでoSheetAがActiveならやりたいことがある。
  oSheetA.Cells(nRow, nCol) = cValue
End Sub

具体的には、複数のBookを開いている状態で、Activeシートが何であるかはオペレータの操作次第なので固定化できない状態で、SetValueが呼び出されたとき、oSheetAがActiveだったら、値をセットするセルが見えるようにセルをActivateかスクロールさせたいんです。

標準モジュールの冒頭でワークシート用のオブジェクト変数を確保し、
あるタイミングで、あるシートをそのオブジェクト変数にSetしています。

で、そのシートに値をセットするときに、そのシートがActiveだった場合だけやりたい処理があるのですが、Setしてあるオブジェクト変数だけを見てそのシートがActiveか否かを判断する方法って、あるのでしょうか。

コード例)
Private oSheetA as Worksheet

Sub SetSheet(sName as String)
  Set oSheetA = worksheets(sName)
End Sub

Sub SetValue(nVa...続きを読む

Aベストアンサー

Option Explicit

Private oSheetA As Worksheet

Sub SetSheet(sName As String)
Set oSheetA = Worksheets(sName)
End Sub

Sub SetValue(nValue As Integer)
If oSheetA Is ActiveSheet Then
MsgBox ("hoge")
End If
oSheetA.Cells(1, 1) = nValue
End Sub

Sub Main()
SetSheet ("Sheet1")
SetValue (5)
End Sub

'実行できるようにソースは変更していますが,
'こんな感じでIs演算子で同じオブジェクトか比較してみるってのはどうでしょう?

QA⇔BリピートができるWMAプレイヤー

WindowsXPのPC上で動くミュージックプレイヤーを捜してます。
いわゆるA⇔B間のリピートができる機能があるもので、できればフリーorシェアウェアがいいのですが、ご存知の方、推薦してもらえるとありがたいです。
ファイル形式はWMAが使えればベスト、mp3でもOKです。

Aベストアンサー

ソフトの方はベクター等で探せばフリーのもので、良いものがたくさん見つかるはずです。
好みは人それぞれですので、最終的には自分で探してみることをお勧めします。

とはいっても推薦してとのことなので、私が気に入っているやつを一つ上げます。
軽く動くし、機能も必要十分(区間再生もOK)です。
Mediaunite
http://www.vector.co.jp/soft/win95/art/se252472.html

※真空波動研は、有名なソフトではありますが、プレイヤーとして有名なのではなく、codec判定ソフトとして有名なので、用途が少し違う気がします。
(ごめんなさい。批判っぽくなってしまいましたが、好みは人それぞれなので、気に入れば全然使ってOKだと思います)

参考URL:http://www.vector.co.jp/soft/win95/art/se252472.html

QVoidポインタで受け取った変数の型を調べる方法

あるライブラリの関数を利用しようとしたのですが、その関数の引数にVoidポインタがあり、どういう型のデータを格納したのかわかりません。このポインタのアドレスに格納されたデータの型を調べる関数なり方法なりというのはあるのでしょうか。

Voidポインタというのは型を問わずに受け取れるというのは利点ですが、受け取ったものがあらかじめなんだかわからない場合はどうするのでしょうか。よろしくお願いします。

Aベストアンサー

★基本的に調べようがありません。
・『void』ポインタはアドレス情報のみを受け渡しますので、型のサイズまでは分かりません。
 逆に言えば、型のサイズが分からないから『汎用ポインタ』と呼べるのです。
・あるライブラリの関数とは何?→どんな関数か分かりませんので、これ以上はアドバイス無理!
 ただ、C言語の qsort などでは比較用の関数で『void』ポインタを受け取りますが、その関数内で
 渡されたデータの『型』を指定します。→ポインタの形でキャストします。
 この比較用の関数は自前で用意する関数ですので、ソートするデータの型が分かっています。
 でも、ソートするデータ型が複数ある場合は、比較用の関数を複数作って切り替えます。
・あと関数に型を表す引数があれば、それを見て判断できますが、そうでない場合は『void』ポインタで
 渡される前の『型』の調べることは不可能です。→言語仕様より。
・以上。参考に。→一応、あるライブラリの関数とは何?

Qm4aからm4bへの一括変換について

Ipodへ英語教材の音声ファイルをオーディオブックとして
入れるため、m4aからm4bへの変換を行っているのですが、
1つ1つ手作業でしていては、埒があきません。
どなたか、拡張子を一括返還できるソフト(できればフリーウェア)を
ご存じでしたら、教えていただけないでしょうか。
よろしくお願いいたします。

Aベストアンサー

拡張子を一括変換できるソフトは結構あります。下記から探してみてください。
http://freesoft-100.com/pasokon/replace_name.html

QVBAでテキストファイルの件数を調べる方法

Access2000のVBAで関数を使用して
ファイルのパス名、ファイル名を指定すれば、
テキストファイルの件数を検索し変数に返す
関数はありませんか?
   
通常テキストファイルを開き1件1件カウントを
取っていけば件数を知ることは可能ですが、
数千レコードのテキストファイルが複数個存在
する場合処理スピードが遅くなるため何か
最適な関数はありませんか?
よろしくお願い致します。

Aベストアンサー

こんにちは。maruru01です。

No.2の方のFileSystemObjectを利用する方法です。

行数 = CreateObject("Scripting.FileSystemObject").OpenTextFile(ファイルのフルパス, 8).Line

複数のファイルをカウントするなら、ファイルでループを回せばいいでしょう。

あと、FileSystemObjectの参考ページを紹介しておきます。

http://www.bcap.co.jp/hanafusa/VBHLP/FSOme.htm

http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/script56/html/jsobjFileSystem.asp

参考URL:http://www.bcap.co.jp/hanafusa/VBHLP/FSOme.htm,http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/l

こんにちは。maruru01です。

No.2の方のFileSystemObjectを利用する方法です。

行数 = CreateObject("Scripting.FileSystemObject").OpenTextFile(ファイルのフルパス, 8).Line

複数のファイルをカウントするなら、ファイルでループを回せばいいでしょう。

あと、FileSystemObjectの参考ページを紹介しておきます。

http://www.bcap.co.jp/hanafusa/VBHLP/FSOme.htm

http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/script56/html/jsobjFileSystem.asp

...続きを読む

Qituneの中身をAというPCからBというPCに移動させる。

ituneの中身をAというPCからBというPCに移動させる。

新しいPCを買った時に既存のPCの中にあるituneはどのように移動させればいいのでしょうか?
PCに疎くて、どうしていいのか分からないので困っています。

Aベストアンサー

手間がかかって中途半端なやり方に引っかからないようにしましょ
う。他の回答では、プレイリストや再生回数などの情報が消えてし
まいます。

古い方のマシンのiTunesで手順に従ってバックアップを取り、新し
い方のマシンでiTunesを起動してバックアップのディスクを挿入す
るだけで、プレイリストも再生回数も全て完璧に復元してくれま
す。何の心配もありません。

手順は、iTunesの「ファイル」メニューから「ライブラリ」→
「ディスクへバックアップ…」を選択、指示に従ってDVD-Rを入れ
るだけです。

QVBAで他のプログラムが起動しているか調べる方法

VBAで
D:\test\test.exe
が起動中か調べたいのですが
どのようにすれば良いですか?

http://www.vbalab.net/vbaqa/data/access/log/tree_532.htm

このページの方法を使えば、
exe以外のファイルが使用中かは調べることができたのですが
exeファイルの場合にはうまくいきません。

良い方法があれば教えてください。

Aベストアンサー

残念ながら・・・出来ません。
一応、プロパティの中に Handle ってのがあるのですが
取得できるのは ProcessID の値です。
以前、調べていて Handle を見つけた時は、
『やったー \(^o^)/』と思いましたが
ぬか喜びでした。。。orz

なお、当方の環境は、Windows7 Pro & Office2010 です。

QAパソコンで作業中の画面を、遠隔のBパソコンでリアルタイムに見る方法は

Aパソコンで作業中の画面を、遠隔のBパソコンでリアルタイムに見る方法はありますでしょうか。

請け負った仕事で、クライアントからの微修正の指示を受けながら仕上げなければならないのですが、作ったものをそのつど保存してメールで送り、また指示を受ける、という方法では手間がかかって仕方がありません。こちらが作業しているパソコンの画面を、先方もリアルタイムで見る方法はありませんでしょうか。

因みに、「trueremote」というソフトは試してみましたが、自分で使っている2台のPC間では成功するものの、他の人との間では上手く行きませんでした。

よろしくお願いいたします。

Aベストアンサー

私はこれを使ってます。とりあえずは無料で使えるので試してみたら?。
http://www.teamviewer.com/ja/index.aspx


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報