• 締切済み

VBA withブロックで自分自身を指定する

エクセルVBAのwithブロックの中で、自分自身のオブジェクトを指定する方法はあるでしょうか? 具体的には、 Dim sh As Worksheet Set sh = Worksheets(1) With sh Call XXX(sh) End With のcall XXX(sh)の「sh」の部分で、 withブロックの中に自分自身のオブジェクトを再度表記すると見栄えもメンテナンス性もよくないので「.this」というような感じの表記ができないかと思っています。

みんなの回答

  • Prome_Lin
  • ベストアンサー率42% (201/470)
回答No.2

私自身は、これが「美しくない」とは思わないのですが、ばかげた解決法ですので、無視してください。 Public sh Public Sub abc() Set sh = Worksheets(1) With sh .Range("B1").Value = "z" Call xxx End With End Sub Public Sub xxx() sh.Range("C1").Value = "y" End Sub これで、「Call xxx(sh)」としなくても、「Call xxx」だけで「OK」ですが、ばかげています。

すると、全ての回答が全文表示されます。
  • Prome_Lin
  • ベストアンサー率42% (201/470)
回答No.1

確認ですが、 With sh Call XXX(sh) End With の部分には、他にもいろいろ記述があるのですよね。 もし、他に記述がないのでしたら、3行で書かなくても「Call XXX(sh)」だけでいいので・・・

d404RlVm
質問者

補足

紛らわしい書き方ですみません。 もちろん、withブロック内には「Call XXX(sh)」だけでなく、shのプロパティ・メソッドを使うような命令文が入ります。

すると、全ての回答が全文表示されます。

関連するQ&A