|
みなさん、こんばんは。
>
>当初、色々なプロシージャやファンクションで
>いちいち With ThisWorkbook.Sheets("Sheet1") などとするのが面倒で
>
>Public sh_i as Object
>Public sh_p as Object
>
>Private Sub Auto_Open()
> SheetnameSet
>End Sub
>
>Sub SheetnameSet()
> Set sh_i = ThisWorkbook.Sheets ("Sheet1")
> Set sh_p = ThisWorkbook.Sheets ("Sheet2")
>End Sub
>
>としていました。
>で、勉強していくうちにNewキーワードというものを発見し
>
>Public sh_i As New Sheet1
>Public sh_p As New Sheet2
>
>と、してみたら・・・うまく行ったのです
>
>しかし、さらにシートを追加してやってみようとしたり
>新しいブックで同じような事をしようとすると
>「New キーワードの使用法が不正です。」とエラーメッセージが出ます。
>また、シート名(ワークシートオブジェクト?)がオブジェクトブラウザでも出てこず、
>同様に記述できません。
>
>いったい何が違うのか、そもそも使い方が間違っているのか・・・
>偶然出来てしまったが為に勘違いしているのか?
現象確認しました。
Excel2002では、何度やっても
Dim Sht1 as new sheet1
の正常作動を確認できませんでした(つまり、エラーになります)。
が、
Excel2000で作成したブックをExcel2002で読み込んだ場合、
既に作成してあるシートに対して、
dim sht as new sheet1
上記の宣言が可能です。
しかし、このブックに新しくシートを追加した場合(例えば、Sheet4を追加)、
dim sht4 as new sheet4
は、
>「New キーワードの使用法が不正です。」とエラーメッセージが出ます。
ということはExcel2000までは、 New sheet1 という記述ができたのでしょうか?
と思い、80になる私の父(最近Excelに目覚めた らしい)のPCにExcel2000が
入っていたので2分前に確認したところ、Excel2000でも
Excel2002と同様、
Dim Sht1 as new sheet1
は、エラーになります。
このExcel2000で作成したブックをExcel2002で読み込むと
またまた、
Dim Sht1 as new sheet1
これは、正常に作動します。
Excel2002で作成ブックは、Excel2003では??
Excel2003で作成ブックは、Excel2007では??
確認できる方はお願いします。
上記の現象からすると、
Dim Sht As New Sheet1
という記述が良い記述ではないことが推測できますよね!!
(Set sht=new sheet1も同様です)
|
|