Excel VBA質問箱 IV

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

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


4201 / 76734 ←次へ | 前へ→

【78158】Re:RC数式の一括入力が認識されません
発言  β  - 16/4/28(木) 7:21 -

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

セルに書きこんでいるところのコードも是非拝見したいと思っているんですが
それはそれとして、F2 を押さないと認識しない件は、配列のデータ型をStringにしているからだと思います。
Variant型にして実行してみてください。

ところで、セル領域への数式一括セットですが、ちょっと難しく考えすぎているかもしれませんね。

新規ブックに、以下のコードを貼り付け
I1:K7に適当な文字列を入れたうえで、
A1 : =UDFTEST(I1) これを K1 までフィルコピー。
そのあと、Test2〜Test7 まで実行してください。
各行のA〜C列に数式を埋め込んでいます。
いずれも、同じ結果(参照する行は異なりますが)になります。
けんじさんのヒントになればと思います。


Function UDFTEST(R As Range) As String
  UDFTEST = "abc" & R.Value
End Function

Sub test2()
  Range("A2:C2").Formula = "=UDFTEST(I$2)"
End Sub

Sub test3()
  Range("A3:C3").FormulaR1C1 = "=UDFTEST(RC[8])"
End Sub

Sub Test4()
  Dim v(1 To 1, 1 To 3) As String
  
  v(1, 1) = "=UDFTEST(RC[8])"
  v(1, 2) = "=UDFTEST(RC[8])"
  v(1, 3) = "=UDFTEST(RC[8])"

  Range("A4:C4").Value = v
  
End Sub

Sub Test5()
  Dim v(1 To 1, 1 To 3) As String
  
  v(1, 1) = "=UDFTEST(RC[8])"
  v(1, 2) = "=UDFTEST(RC[8])"
  v(1, 3) = "=UDFTEST(RC[8])"

  Range("A5:C5").FormulaR1C1 = v
  
End Sub

Sub Test6()
  Dim v(1 To 1, 1 To 3) As Variant
  
  v(1, 1) = "=UDFTEST(RC[8])"
  v(1, 2) = "=UDFTEST(RC[8])"
  v(1, 3) = "=UDFTEST(RC[8])"

  Range("A6:C6").Value = v
  
End Sub

Sub Test7()
  Dim v(1 To 1, 1 To 3) As Variant
  
  v(1, 1) = "=UDFTEST(RC[8])"
  v(1, 2) = "=UDFTEST(RC[8])"
  v(1, 3) = "=UDFTEST(RC[8])"

  Range("A7:C7").FormulaR1C1 = v
  
End Sub

5 hits

【78155】RC数式の一括入力が認識されません けんじ 16/4/28(木) 0:59 質問[未読]
【78156】Re:RC数式の一括入力が認識されません けんじ 16/4/28(木) 1:16 発言[未読]
【78157】Re:RC数式の一括入力が認識されません β 16/4/28(木) 6:47 発言[未読]
【78158】Re:RC数式の一括入力が認識されません β 16/4/28(木) 7:21 発言[未読]
【78159】Re:RC数式の一括入力が認識されません けんじ 16/4/28(木) 9:14 お礼[未読]

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