Excel VBA質問箱 IV

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

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


10858 / 13644 ツリー ←次へ | 前へ→

【19483】パスの指定の仕方がわかりません(アドイン分析ツール) ポンタ 04/11/4(木) 22:10 質問[未読]
【19485】Re:パスの指定の仕方がわかりません(アド... ichinose 04/11/4(木) 22:44 回答[未読]
【19486】Re:パスの指定の仕方がわかりません(ア... ポンタ 04/11/4(木) 22:54 質問[未読]
【19491】Re:パスの指定の仕方がわかりません(ア... ichinose 04/11/5(金) 1:28 発言[未読]
【19533】Re:パスの指定の仕方がわかりません(ア... ポンタ 04/11/7(日) 11:57 お礼[未読]

【19483】パスの指定の仕方がわかりません(アドイ...
質問  ポンタ  - 04/11/4(木) 22:10 -

引用なし
パスワード
   分析ツールのヒストグラムをマクロ化したいのですがアドインでのパスの指定の仕方がわかりません。

同一sheet内であればマクロ記録でやると、

Application.Run "ATPVBAEN.XLA!Histogram", ActiveSheet.Range("$B$1:$B$790") , ActiveSheet.Range("$D$1"), ActiveSheet.Range("$A$1:$A$25"), False, False, False, True
と言う風に出てきますが、sheetを変えたとたんに、。

Application.Run "ATPVBAEN.XLA!Histogram", , , ActiveSheet.Range("$A$1:$A$25"), False, False, False, True

となって、記述されません。

複数のsheetにわたる場合など、どのようにパスを指定すればいいのでしょうか。

ご教授ください。

【19485】Re:パスの指定の仕方がわかりません(ア...
回答  ichinose  - 04/11/4(木) 22:44 -

引用なし
パスワード
   ▼ポンタ さん:
こんばんは。
私は、使った事はありませんが、
>分析ツールのヒストグラムをマクロ化したいのですがアドインでのパスの指定の仕方がわかりません。
>
>同一sheet内であればマクロ記録でやると、
>
>Application.Run "ATPVBAEN.XLA!Histogram", ActiveSheet.Range("$B$1:$B$790") , ActiveSheet.Range("$D$1"), ActiveSheet.Range("$A$1:$A$25"), False, False, False, True
>と言う風に出てきますが、sheetを変えたとたんに、。
>
>Application.Run "ATPVBAEN.XLA!Histogram", , , ActiveSheet.Range("$A$1:$A$25"), False, False, False, True

Application.Run "ATPVBAEN.XLA!Histogram", worksheets("Sheet1").Range("$B$1:$B$790") , worksheets("Sheet2").Range("$D$1"), worksheets("Sheet1").Range("$A$1:$A$25"), False, False, False, True

というようにデータが入っているセル範囲や出力セルをシート名を指定して
記述してみてはどうでしょうか?

【19486】Re:パスの指定の仕方がわかりません(ア...
質問  ポンタ  - 04/11/4(木) 22:54 -

引用なし
パスワード
   ichinose 様

早々にありがとうございます。

特に、列を例えばA,B,C,Dのように順次変化させてPGを実行させたいのですが、
Cellsを用いる等、良い表現方法はないでしょうか?

>
>Application.Run "ATPVBAEN.XLA!Histogram", worksheets("Sheet1").Range("$B$1:$B$790") , worksheets("Sheet2").Range("$D$1"), worksheets("Sheet1").Range("$A$1:$A$25"), False, False, False, True
>
>というようにデータが入っているセル範囲や出力セルをシート名を指定して
>記述してみてはどうでしょうか?

【19491】Re:パスの指定の仕方がわかりません(ア...
発言  ichinose  - 04/11/5(金) 1:28 -

引用なし
パスワード
   ▼ポンタ さん:
>早々にありがとうございます。
あっ、たまたまです。私、レスは結構遅いです・・・。


>
>特に、列を例えばA,B,C,Dのように順次変化させてPGを実行させたいのですが、
>Cellsを用いる等、良い表現方法はないでしょうか?
>
>>
>>Application.Run "ATPVBAEN.XLA!Histogram", worksheets("Sheet1").Range("$B$1:$B$790") , worksheets("Sheet2").Range("$D$1"), worksheets("Sheet1").Range("$A$1:$A$25"), False, False, False, True
↑これをCellsプロパティを交えて記述すると、

'=======================
Sub test()
  Dim sht1 As Worksheet
  Dim sht2 As Worksheet
  Set sht1 = Worksheets(1)
  Set sht2 = Worksheets(2)
  With sht1
   Application.Run _
    "ATPVBAEN.XLA!Histogram", _
    .Range(.Cells(1, 2), .Cells(790, 2)), _
    sht2.Cells(1, 4), _
    .Range(.Cells(1, 1), .Cells(25, 1)), _
    False, False, True, False
   End With
End Sub

というような書き方ができまます。
これでループをさせたいならCellsの()内に変数を使用すれば可能ですよね?
注意するのは、ブック内でアクティブシート以外のシートのセル範囲の指定でCellsを使用する場合です。
.Range(.Cells(1, 1), .Cells(25, 1)) Withステートメントで省略していますが、
Cellsの前にもワークシートオブジェクトの記述が必要だと言う事です。

確認して下さい。

【19533】Re:パスの指定の仕方がわかりません(ア...
お礼  ポンタ  - 04/11/7(日) 11:57 -

引用なし
パスワード
   ichinose 様

レス遅くなりお許し下さい。

無事解決し、ヒストグラムをVBにて動かすことができました。

分析ツールをVBで動かせれば本当に色々なことができるようになります。
大変参考になりました。

ありがとうございました。

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