Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Home : Excel 2016)
ダブルクォーテーションの付け方について
投稿日時: 17/11/14 17:06:23
投稿者: Dellcasio

 
いつもお世話になっております。
エクセル関数を使い文字列から数字だけを取り出すことは出来たのですが、
それを、For to Next ステートメントで回したいのですが、
うまく出来ません。
 
問題個所は、セルD6を、("D" & i)のようにしたいのですが、ダブルクォーテーション
で囲むとコンパイルエラーになります。(””の付け方が分からない為です)
 
ご指導を頂けないでしょうか?
よろしくお願い致します。
 
 
Sub t()
 
Dim AAA
Dim i
 
 
'文字列から数字だけを取り出すエクセル関数の元のコード (正しく答えが表示されるコードです)
'AAA = "=MID(D6,MIN(FIND({0,1,2,3,4,5,6,7,8,9},D6&1234567890)),LEN(D6)*10-SUM(LEN(SUBSTITUTE(D6,{0,1,2,3,4,5,6,7,8,9},))))"
' Range("A6").Value = AAA
 
 
For i = 6 To 10
 
' 表示される数字が #NAME になる
 
 AAA = "=MID(D & i,MIN(FIND({0,1,2,3,4,5,6,7,8,9},D & i&1234567890)),LEN(D & i)*10-SUM(LEN(SUBSTITUTE(D & i,{0,1,2,3,4,5,6,7,8,9},))))"
 
 Range("A" & i).Value = AAA
 
Next
 
 
End Sub

回答
投稿日時: 17/11/14 17:37:13
投稿者: WinArrow
投稿者のウェブサイトに移動

分かりやすくする工夫で提案
 
Dim セル As String
    セル = "D" & i
    AAA = "=MID(" & セル & ",MIN(FIND({0,1,2,3,4,5,6,7,8,9}," & セル & "&1234567890)),LEN(" & セル & ")*10-SUM(LEN(SUBSTITUTE(" & セル & ",{0,1,2,3,4,5,6,7,8,9},))))"

回答
投稿日時: 17/11/14 18:04:58
投稿者: lucid

AAA内のダブルクォーテーション等を調整しました。
ダブルクォーテーション内の&や変数は解釈されないので
"D & i"は"D" & i などと書く必要があります。
 

For i = 6 To 10

 AAA = "=MID(D" & i & ",MIN(FIND({0,1,2,3,4,5,6,7,8,9},D" & i & "&1234567890)),LEN(D" & i & ")*10-SUM(LEN(SUBSTITUTE(D" & i & ",{0,1,2,3,4,5,6,7,8,9},))))"

 Range("A" & i).Value = AAA

Next
 
End Sub

投稿日時: 17/11/14 18:06:55
投稿者: Dellcasio

WinArrow さんの引用:
分かりやすくする工夫で提案
 
Dim セル As String
    セル = "D" & i
    AAA = "=MID(" & セル & ",MIN(FIND({0,1,2,3,4,5,6,7,8,9}," & セル & "&1234567890)),LEN(" & セル & ")*10-SUM(LEN(SUBSTITUTE(" & セル & ",{0,1,2,3,4,5,6,7,8,9},))))"

 
WinArrowさん
ご回答ありがとうございました。
 
うまく出来ました。
ありがとうございました。
 
ダブルクォーテーションの付け方について
いろいろ調べたのですが、参考書にも載って
おらず困っていました。
 
ありがとうございました。