Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


206 / 3841 ページ ←次へ | 前へ→

【78347】Re:疑問に思い、、、
発言  β  - 16/7/20(水) 21:57 -

引用なし
パスワード
   ▼yuuta さん:
>なぜ " を使わないといけないかと言う質問です。
>"にどういった意味があるかということです。
>緑なのになんで黒板っていうの?という質問と同じ部類なら答えんで良いです。

逆に質問しますが 領域をあらわすのに なぜ Range(なんたら) と Range というスペルのワードを使わなければいけないのでしょう?
どんな言語にも、その言語の表記規約として、定められたキーワードや定められた記述用法があります。

で、VBAでは 【文字列】を生成するときには "こんにちは" と、先頭と末尾に " をつける。
これが、規約です。

もし、" をつけずに 単に こんにちは と記述すると、それは こんにちは という名前を持つ変数になります。

理屈はありません。そういう言語仕様です。

繰り返します。
" は VBA では 文字列のはじめ と 文字列の終わり を意味する特殊文字です。
・ツリー全体表示

【78346】Re:疑問に思い、、、
発言  カエムワセト  - 16/7/20(水) 21:54 -

引用なし
パスワード
   なぜ文字列を""で括らないといけない仕様になっているのか?という質問でしたらVBAの開発者に聞いてください、としか
言えません。

また、回答者は常にお子ちゃまを相手にしているわけではないので、質問は具体的に、だれが見ても質問の意図が分かる
ようにしましょう。
・ツリー全体表示

【78345】Re:疑問に思い、、、
発言  yuuta  - 16/7/20(水) 21:32 -

引用なし
パスワード
   なぜ " を使わないといけないかと言う質問です。
"にどういった意味があるかということです。
緑なのになんで黒板っていうの?という質問と同じ部類なら答えんで良いです。
・ツリー全体表示

【78344】Re:疑問に思い、、、
発言  β  - 16/7/20(水) 21:03 -

引用なし
パスワード
   ▼yuuta さん:

>なるほど、、ダブルクォーテーションの意味がわかれば解決するということですね、、、

ん?
意味がよくわかりませんけど、VBAで文字列をあらわすときには

"文字列" と記述する、ただ、それだけのことですが?
・ツリー全体表示

【78343】Re:疑問に思い、、、
発言  yuuta  - 16/7/20(水) 19:17 -

引用なし
パスワード
   なるほど、、ダブルクォーテーションの意味がわかれば解決するということですね、、、
・ツリー全体表示

【78342】Re:疑問に思い、、、
発言  β  - 16/7/20(水) 19:06 -

引用なし
パスワード
   ▼yuuta さん:

たとえば シート上では =SUM(A1:A10) と書くことができるというか、
そう書かなければいけないのに、なぜ VBA では Range("A1:A10") と書かなければいけないのか??
ということですね。

そうですねぇ。
Rangeの書き方は多種多様ですが、そのなかで、情報として セル領域アドレス文字列(A1:A10等)を与える書き方の場合、
VBAでいうところの【文字列】には、必ず、前後に "をつけることが必要という、まぁ、これもお約束です。

で、このルールは Range のルールではなく【文字列】のルールです。

たとえば

MsgBox "こんにちは"

この場合にも、こんにちは の前後に " を付けますよね。
・ツリー全体表示

【78341】疑問に思い、、、
質問  yuuta  - 16/7/20(水) 18:40 -

引用なし
パスワード
   Rangeを使うときに、"(ダブルクォーテーション)が必要なのはなぜなのでしょうか!?
本で調べても載ってませんでした(^-^;
・ツリー全体表示

【78340】Re:「FileSearch」代替クラスの作り方
発言  γ  - 16/7/20(水) 7:01 -

引用なし
パスワード
   >「On Error GoTo ABORT」とあり、ABORTに飛ぶ直前の行は以下の行でした。
>これがエラーになっているという理解でよいのでしょうか。
> For Each oSubFolder In oFolder.SubFolders
On Error GoTo ABORT をコメント文にして無効にした上で実行してみてください。
エラーになったときのoFolderの内容をローカルウインドウで
確認してみては?
・ツリー全体表示

【78339】Re:「FileSearch」代替クラスの作り方
発言  Gyouko  - 16/7/19(火) 23:10 -

引用なし
パスワード
   ▼γ さん:
>▼Gyouko さん:
>>>>ステップ実行を行いましたが、下記の行を実行した後に表示されます。  
>>>>Call MsgBox(Err.Number & ":" & Err.Description)
>
>それはエラーが起きてしまってから、メッセージを出す部分です。
>もっと前の段階でエラーが起きているはずなので、
>ステップ実行を注意深く行って、
>どこでエラーになっているのか、よく観察してみて下さい。


「On Error GoTo ABORT」とあり、ABORTに飛ぶ直前の行は以下の行でした。
これがエラーになっているという理解でよいのでしょうか。
For Each oSubFolder In oFolder.SubFolders
・ツリー全体表示

【78338】Re:「FileSearch」代替クラスの作り方
発言  γ  - 16/7/19(火) 22:14 -

引用なし
パスワード
   ▼Gyouko さん:
>>>ステップ実行を行いましたが、下記の行を実行した後に表示されます。  
>>>Call MsgBox(Err.Number & ":" & Err.Description)

それはエラーが起きてしまってから、メッセージを出す部分です。
もっと前の段階でエラーが起きているはずなので、
ステップ実行を注意深く行って、
どこでエラーになっているのか、よく観察してみて下さい。
・ツリー全体表示

【78337】Re:「FileSearch」代替クラスの作り方
発言  Gyouko  - 16/7/19(火) 18:53 -

引用なし
パスワード
   ▼β さん:
>▼Gyouko さん:
>
>横から失礼します。
>
>>ステップ実行を行いましたが、下記の行を実行した後に表示されます。  
>>Call MsgBox(Err.Number & ":" & Err.Description)
>
>えっ??
>
>このコードはアップされたコードの中にはありませんが?

クラスモジュールの中にあるコードのようですね。
・ツリー全体表示

【78336】Re:「FileSearch」代替クラスの作り方
発言  β  - 16/7/19(火) 18:10 -

引用なし
パスワード
   ▼Gyouko さん:

横から失礼します。

>ステップ実行を行いましたが、下記の行を実行した後に表示されます。  
>Call MsgBox(Err.Number & ":" & Err.Description)

えっ??

このコードはアップされたコードの中にはありませんが?
・ツリー全体表示

【78335】Re:「FileSearch」代替クラスの作り方
発言  Gyouko  - 16/7/19(火) 7:41 -

引用なし
パスワード
   ▼γ さん:
ご確認いただき、ありがとうございます。

自宅の環境(2000)で実施した場合にエラーが出た為、質問させて頂いたのですが、
その後、試しに会社の環境(2013)で実施したところ、エラーが出ませんでした。

ステップ実行を行いましたが、下記の行を実行した後に表示されます。  
Call MsgBox(Err.Number & ":" & Err.Description)

「配下の条件に合致したパス名たちの取得ができているかどうか
確認してください。」とのことですが、確認方法が分かりません。
申し訳ございませんが、分かりやすくご教示頂けますでしょうか。
・ツリー全体表示

【78334】Re:VBAの質問です。
お礼  VBA初心者  - 16/7/18(月) 21:47 -

引用なし
パスワード
   了解です。
ありがとうございました。m(__)m
・ツリー全体表示

【78333】Re:VBAの質問です。
発言  マナ  - 16/7/18(月) 20:41 -

引用なし
パスワード
   ▼VBA初心者 さん:

select caseについて勉強したことないですか。
正答数が0、1、2のどれであるかで
メッセージを変えるように修正するとよいです。
わたしに出来るのはここまで。
・ツリー全体表示

【78332】Re:VBAの質問です。
発言  VBA初心者  - 16/7/18(月) 20:07 -

引用なし
パスワード
   丁寧にありがとうございます。m(__)m
条件分岐というものを使って出来ないでしょうか!?
せっかく、書いてくださったのにすみません。
・ツリー全体表示

【78331】Re:VBAの質問です。
発言  マナ  - 16/7/18(月) 19:45 -

引用なし
パスワード
   ▼VBA初心者 さん:

作業用シートを使う案です。
質問Aだけの例です。
使えそうであれば修正してご使用ください。

1行目に質問文を入力しておきます。
2行目に正解を入力しておきます。
3行目は、空欄で回答入力用です。
4行目には計算式を入力してきます。
例えば、A4:=(A2=A3)*1

Option Explicit

Sub test()
  Dim ws As Worksheet
  Dim 問1 As String
  Dim 答1
 
  Set ws = Sheets("Sheet1")
  ws.Rows(3).ClearContents
  
  問1 = ws.Cells(1, 1).Value
  答1 = Application.InputBox(問1, Type:=1)
  
  If VarType(答1) = vbBoolean Then Exit Sub
  
  ws.Cells(3, 1).Value = 答1

  MsgBox "正答数:" & WorksheetFunction.Sum(ws.Rows(4))
  
End Sub
・ツリー全体表示

【78330】Re:VBAの質問です。
発言  VBA初心者  - 16/7/18(月) 19:08 -

引用なし
パスワード
   ▼マナ さん:
>▼VBA初心者 さん:
>
>質問Aについて教えて下さい。
>例えば、どんな質問でしょうか。
>また答えは、自由回答、それとも選択式?

質問Aは、重力加速度の値を有効数字2桁で書け。
質問Bは、仕事当量の値を有効数字2桁で書け。
どちらも記述式です。
・ツリー全体表示

【78329】Re:VBAの質問です。
発言  マナ  - 16/7/18(月) 18:33 -

引用なし
パスワード
   ▼VBA初心者 さん:

質問Aについて教えて下さい。
例えば、どんな質問でしょうか。
また答えは、自由回答、それとも選択式?
・ツリー全体表示

【78328】VBAの質問です。
質問  VBA初心者  - 16/7/18(月) 17:49 -

引用なし
パスワード
   今、VBAでプログラミングを行っているのですが、inputboxを使い、Aという質問に対し、間違っていれば「間違いです」と表示し、当っていればBという質問を表示させ、AとB両方当っていれば、「両方正解」、Aだけ当っていれば、「1つだけ正解」と表示させたいのですが、わかりません。
よろしくお願いしますm(__)m
・ツリー全体表示

206 / 3841 ページ ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free