Excel VBA質問箱 IV

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

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


6128 / 13646 ツリー ←次へ | 前へ→

【47047】このコードのおかしいですか? ふぃれお 07/2/27(火) 4:18 質問[未読]
【47049】Re:このコードのおかしいですか? ichinose 07/2/27(火) 7:20 発言[未読]
【47057】Re:このコードのおかしいですか? ふぃれお 07/2/27(火) 16:43 質問[未読]
【47058】Re:このコードのおかしいですか? Blue 07/2/27(火) 17:07 回答[未読]
【47059】Re:このコードのおかしいですか? ichinose 07/2/27(火) 19:09 発言[未読]
【47061】Re:このコードのおかしいですか? ふぃれお 07/2/27(火) 19:39 お礼[未読]

【47047】このコードのおかしいですか?
質問  ふぃれお  - 07/2/27(火) 4:18 -

引用なし
パスワード
   Private Sub CommandButton9_Click()
  i = WorksheetFunction.CountA(Range("C8:C27"))
  Sheets("aaa").Select
  ActiveSheet.Range(Cells(2, 4), Cells(1 + i, 31)).Select
End Sub

お聞きします。

Sheets("aaa").Selectをはずせば動くのですが、シートを移動しないと意味がないので、どのように直せばいいのかをご教授願います。

【47049】Re:このコードのおかしいですか?
発言  ichinose  - 07/2/27(火) 7:20 -

引用なし
パスワード
   ▼ふぃれお さん:
おはようございます。

>Private Sub CommandButton9_Click()
>  i = WorksheetFunction.CountA(Range("C8:C27"))
>  Sheets("aaa").Select
>  ActiveSheet.Range(Cells(2, 4), Cells(1 + i, 31)).Select
>End Sub
>Sheets("aaa").Selectをはずせば動くのですが、シートを移動しないと意味がないので、どのように直せばいいのかをご教授願います。

つい最近、同じようなご質問がありました。

www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=46598;id=excel#46617

エラーの理由はこのスレッドと同じです。
このスレッドを見ていただいて再度ご自分のコードを見直してみてください。

【47057】Re:このコードのおかしいですか?
質問  ふぃれお  - 07/2/27(火) 16:43 -

引用なし
パスワード
   ▼ichinose さん:
ご意見ありがとうございます。
リンクを読んで色々試したのですが、うまくいきません。
試したのは

Application.ActiveSheet.Range(Cells(2, 4), Cells(1 + i, 31)).Select
Worksheets("aaa").Range(Cells(2, 4), Cells(1 + i, 31)).Select
Application.Worksheets("aaa").Range(Cells(2, 4), Cells(1 + i, 31)).Select

ぐらいを変えたりしてたのですが…

【47058】Re:このコードのおかしいですか?
回答  Blue  - 07/2/27(火) 17:07 -

引用なし
パスワード
   ▼ふぃれお さん:

>Application.ActiveSheet.Range(Cells(2, 4), Cells(1 + i, 31)).Select
Cellsはどのシートのものになりますか?

それを考えれば、わかりますよ。

【47059】Re:このコードのおかしいですか?
発言  ichinose  - 07/2/27(火) 19:09 -

引用なし
パスワード
   こんばんは。
色々試されたみたいですね!!
こういうのは、分かってしまえば何てことはないのですけどね!!
Blueさんからもヒントがありましたが、
一日考えていただいたのでこれ以上は・・・ね!!
>Private Sub CommandButton9_Click()
>  i = WorksheetFunction.CountA(Range("C8:C27"))
>  Sheets("aaa").Select
   msgbox cells(2,4).parent.name
'   ↑ここで何が表示されるか確認してください
'   このコードが記述されているシート名が表示されますよね?
>  ActiveSheet.Range(Cells(2, 4), Cells(1 + i, 31)).Select
'   よって、アクティブシート(aaa)のセル範囲を指定するのに
'   cells(2,4)(違うシートのセル)を指定しているので
'   「1004 アプリケーション定義またはオブジェクト定義のエラーです。」
'   というエラーになります。
>End Sub

Private Sub CommandButton9_Click()
  Dim i As Long
  i = WorksheetFunction.CountA(Range("C8:C27"))
  With Sheets("aaa")
    .Select
    .Range(.Cells(2, 4), .Cells(1 + i, 31)).Select
'このようにCellsプロパティのオブジェクトもきちんと指定すると
'正しく作動すると思いますよ!!
    End With
End Sub

試してみてください

【47061】Re:このコードのおかしいですか?
お礼  ふぃれお  - 07/2/27(火) 19:39 -

引用なし
パスワード
   ▼ichinose さん:
ありがとうございます!できました!!
cellsにまでつけるとは思いもしなかったです。
とても助かりました。
本当にありがとうございました。

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