Access (VBA)

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

 
(指定なし : 指定なし)
アクセスからエクセルの操作について
投稿日時: 20/05/13 19:02:29
投稿者: aomi

いつもお世話になっております。
Accessからエクスポートしたデータに対して、下記のコードを入力したら、
IF(ISERROR〜の箇所の"6"のところで、下記のエラーが出ました。
使えないコードなのでしょうか?
ご教授いただければと思います。
 
 
コンパイルエラー
修正候補:ステートメントの最後
 
 
Dim i As Long
         
i = 2
         
Do While .Worksheets("Sheet1").Cells(i, 1) <> ""
     
.Worksheets("Sheet1").Cells(i, 34).formula = "=IF(ISERROR(MID(Z2,FIND("6",Z2),10)),"",MID(Z2,FIND("6",Z2),10))"
       
i = i + 1
  
Loop

回答
投稿日時: 20/05/14 09:45:25
投稿者: sk

引用:
.Worksheets("Sheet1").Cells(i, 34).formula = "=IF(ISERROR(MID(Z2,FIND("6",Z2),10)),"",MID(Z2,FIND("6",Z2),10))"

.Worksheets("Sheet1").Cells(i, 34).Formula = "=IF(ISERROR(MID(Z2,FIND(""6"",Z2),10)),"""",MID(Z2,FIND(""6"",Z2),10))"
 
----------------------------------------------------------------------------
 
文字列リテラルにおいて「"」という文字を記述したい場合は
「""」と記述して下さい。

投稿日時: 20/05/14 10:04:31
投稿者: aomi

sk様
 
ありがとうございます。数式が入ることが確認できました!
 
もう1つご教授いただければと思います。
 
.Worksheets("Sheet1").Cells(i, 34).Formula = "=IF(ISERROR(MID(Z2,FIND(""6"",Z2),10)),"""",MID(Z2,FIND(""6"",Z2),10))
 
Z2の箇所をZ3,Z4と下に移動するたびに参照先を変えるにはどうしたらよろしいでしょうか?
重ねてご質問して申し訳ございません。

回答
投稿日時: 20/05/14 10:25:26
投稿者: sk

引用:
i = 2

引用:
i = i + 1

引用:
Z2の箇所をZ3,Z4と下に移動するたびに参照先を変えるにはどうしたらよろしいでしょうか?

変数 i の値を「 Z 列の行番号」として数式に組み込むようにしたい、
ということであれば、以下のように文字列連結を行なえばよいでしょう。
 
引用:
.Worksheets("Sheet1").Cells(i, 34).Formula = "=IF(ISERROR(MID(Z2,FIND(""6"",Z2),10)),"""",MID(Z2,FIND(""6"",Z2),10))"

.Worksheets("Sheet1").Cells(i, 34).Formula = "=IF(ISERROR(MID(Z" & i & ",FIND(""6"",Z" & i & "),10)),"""",MID(Z" & i & ",FIND(""6"",Z" & i & "),10))"
 
----------------------------------------------------------------
 
Z2 セルに設定した数式をコピーして Z3 以下のセル範囲に貼り付けるだけなら、
ループ処理を使わずに実現する方法もあるでしょう。

投稿日時: 20/05/14 11:55:09
投稿者: aomi

sk様
 
回答ありがとうございます。
思い通りの動作になりました。
大変助かりました。