アプリ版:「スタンプのみでお礼する」機能のリリースについて

またまたVBAで質問があります。
分かる方、ご教授願います。

あるフォーマットの見積依頼書を、指定されたフォーマットに変換するマクロを組んでいます。

マクロ実行excelファイルに、処理された見積依頼ファイルから以下のデータを取得します。
・伝票番号(A列) *A4に手でセット
・会社名   
・郵便番号
・住所
・電話番号
・見積合計(F列) *F4に手でセット

activeSheet.Cells.SpecialCells(xlLastCell).Rowを使用し、アクティブシート(上記6つのデータが格納されるシートに設定済み)の最終行番号を取得しようとしているのですが、どうもうまく取得できていないみたいです。

以下質問。
・初期動作時には、行番号4が取得されると思うんですが、違いますかね?(実際取られる値は5)
・仮に初期動作時に5が取られるなら、2回目には、6が取られますよね?(実際取られる値は5)

何回実行しても、最終行番号5を取得しているみたいです。(保存は処理完了時に毎回上書き保存済み)
ソースを張付けますので、どなたかご教授お願いします。


' 見積書一覧シートをアクティブシートに設定
Set activeSheet = quotationList.Worksheets("見積書一覧")
activeSheet.Activate
' 見積書一覧の最終行取得
fileLastRow = activeSheet.Cells.SpecialCells(xlLastCell).Row
' 見積書一覧に取得した値をセット
quotationList.Worksheets("見積書一覧").Cells(fileLastRow, 1).Value = sendSlipNo
quotationList.Worksheets("見積書一覧").Cells(fileLastRow, 2).Value = sendCompany
quotationList.Worksheets("見積書一覧").Cells(fileLastRow, 3).Value = sendPostNo
quotationList.Worksheets("見積書一覧").Cells(fileLastRow, 4).Value = sendAddress
quotationList.Worksheets("見積書一覧").Cells(fileLastRow, 5).Value = sendTelNo
quotationList.Worksheets("見積書一覧").Cells(fileLastRow, 6).Value = quotationSum
quotationList.Save

補足
・quotationListには、マクロ実行excelファイルがworkbookとして格納されています。
・send~って変数には、予めコピーした値(別シートから)が格納されています。

A 回答 (1件)

 


ActiveSheetを変数宣言してますよね?
読み取り専用オブジェクトのActiveSheetを、
わざわざオブジェクト変数にしてるところに問題がありそうな。

それから、提示のコードの部分のみついて言えば、
見積書一覧シートをActiveにする必要はないように思えますが
ま、それは置いといて、以下のようにしてみたらどうなるでしょうか。


>Set activeSheet = quotationList.Worksheets("見積書一覧")
>activeSheet.Activate

オブジェクト変数ActiveSheetの宣言を削除して、上記2行を

quotationList.Worksheets("見積書一覧").Activate

にする。

以上です。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
そしてお礼遅れて申し訳ないです。

実は、提示したソースの他にも別のシートをアクティブシートにしてるんです。

>quotationList.Worksheets("見積書一覧").Activate
こちらで試してみましたが、「オブジェクトは、このプロパティまたはメソッドをサポートしていません。」とエラーが出てしまいました。

そもそも、この取得する方法は仕様上バグがあるらしいです。(どんなのかは忘れましたけど・・・。)

他の方法で試しても、うまく行かなかった為課題出題者に聞いたところ、「初めセットするセルは固定」らしいので、直で指定し、そこから+1、+2とするようにしました。

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

お礼日時:2010/04/17 22:57

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!