Excel VBA質問箱 IV

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

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


30 / 75375 ←次へ | 前へ→

【80996】VBAによる電圧自動測定
質問  ムズロウ E-MAIL  - 19/7/5(金) 0:18 -

引用なし
パスワード
   Agilent Technologies社の6 1/2 Degit Multimeter2台による電圧自動測定で、エラー9が出てしまい困っています。
コードの概略としましては1測定温度に対し、2出力の電圧を500回測定し、その平均を出しSheet1に記述していくというものです。

以下コード

Private Sub let_mesurement_Click()
  Dim i As Integer
  Dim j As Integer
  Dim DATA As Variant
  Dim TOTAL As Single
  Dim AVERAGE As Single
  Dim temp As Integer
  Dim count As Integer
  
  count = Sheet1.Cells(5, 11)
  
  temp = InputBox("測定温度は何℃ですか?", "温度確認")
  
  Dim new_Worksheets As Variant
  Set new_Worksheets = Worksheets.Add()
  new_Worksheets.Name = Str(temp) & "℃"
  
  Worksheets(new_Worksheets.Name).Cells(1, 1) = temp & "℃"
  Worksheets(new_Worksheets.Name).Cells(2, 3) = "平均出力電圧[V]"
  Worksheets(new_Worksheets.Name).Cells(1, 4) = "電圧1"
  Worksheets(new_Worksheets.Name).Cells(1, 5) = "電圧2"

  Dim RM As New VisaComLib.ResourceManager
  Dim DMM As New VisaComLib.FormattedIO488
    
  For i = 23 To 24
  
    Set DMM.IO = RM.Open("GPIB0::" & i & "::INSTR") '入力されたVISAアド                        レスにてセッションオープン
  
    DMM.IO.Timeout = 120000   'タイムアウト時間120秒に設定
    TOTAL = 0
    AVERAGE = 0
  
    With DMM
      .WriteString "*RST;*CLS" 'リセット、クリア
      .WriteString "CONF:VOLT:DC AUTO" ', 1E-5"  'DCV測定
      .WriteString "SENS:VOLT:DC:NPLC 0.5"  '積分時間を0.5PPLに設定
      .WriteString "TRIG:COUN 500"  'トリガカウント500回 34401Aの                       内部メモリの限界512回
      .WriteString "INIT"   '測定開始
      .WriteString "*OPC?"  '動作完了確認(ここでは測定の完了を確                       認)
      .ReadString        '測定が完了すると1 が返る
      .WriteString "FETC?"
      
      DATA = .ReadList(ASCIIType_R4, ",")
  
      For j = 0 To 499
       Worksheets(new_Worksheets.Name).Cells(j + 4, i - 19) = DATA(j)
        TOTAL = TOTAL + DATA(j)
      Next j
  
      .IO.Close
  
  End With
  
  Set DMM = Nothing
  Set RM = Nothing
  
  AVERAGE = TOTAL / 500
    
  Worksheets(new_Worksheets.Name).Cells(2, i - 19) = AVERAGE
  
  Next i
  
  Sheet1.Cells(count + 2, 1) = temp
  
  Sheet1.Cells(count + 2, 2) = Worksheets(new_Worksheets.Name).Cells(2, 4)
  Sheet1.Cells(count + 2, 3) = Worksheets(new_Worksheets.Name).Cells(2, 5)
  
  Sheet1.Cells(5, 11) = count + 1
  
  Set new_Worksheets = Nothing
  
  MsgBox "測定完了!"
  
End Sub

コード以上

変数iはGPIBのアドレスです
Worksheets(new_Worksheets.Name).Cells(j + 4, i - 19) = DATA(j)
の部分でエラーが出るようですが、うまく機能するときもあり原因が分かりません
当方VBAの知識はあまりなくコード自体も元あったものを少し書き換えた形になります。自分の勉強不足ではありますが、こちらに質問したほうが早いかと思い投稿させていただいた次第です。
自分でも調べてみますがどうぞよろしくお願いします。

53 hits

【80996】VBAによる電圧自動測定 ムズロウ 19/7/5(金) 0:18 質問[未読]
【81000】Re:VBAによる電圧自動測定 よろずや 19/7/5(金) 21:18 発言[未読]
【81001】Re:VBAによる電圧自動測定 ムズロウ 19/7/6(土) 12:57 お礼[未読]
【81010】Re:VBAによる電圧自動測定 ムズロウ 19/7/8(月) 19:32 質問[未読]
【81011】Re:VBAによる電圧自動測定 よろずや 19/7/8(月) 19:58 回答[未読]
【81013】Re:VBAによる電圧自動測定 ムズロウ 19/7/8(月) 22:21 お礼[未読]
【81021】Re:VBAによる電圧自動測定 ムズロウ 19/7/10(水) 14:37 質問[未読]
【81022】Re:VBAによる電圧自動測定 ムズロウ 19/7/10(水) 17:02 質問[未読]
【81023】Re:VBAによる電圧自動測定 よろずや 19/7/10(水) 19:42 発言[未読]
【81025】Re:VBAによる電圧自動測定 ムズロウ 19/7/12(金) 16:49 回答[未読]

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