Excel VBA質問箱 IV

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

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


860 / 13645 ツリー ←次へ | 前へ→

【77892】代入について はる 16/1/21(木) 13:47 質問[未読]
【77893】Re:代入について β 16/1/21(木) 14:08 発言[未読]
【77894】Re:代入について 16/1/23(土) 9:29 回答[未読]
【77895】Re:代入について 16/1/23(土) 14:05 質問[未読]
【77896】Re:代入について はる 16/1/25(月) 8:53 お礼[未読]

【77892】代入について
質問  はる  - 16/1/21(木) 13:47 -

引用なし
パスワード
   vba初心者です。行き詰ってしまったので解決策をお願いします。。
マクロを起動するブックの"マクロセット"シートの
I4 =開くファイルのフォルダ名 L4 = ファイル名を入れています。
ファイルを開き、マクロブックのシート(5)を開いたブックのシート(1)に貼り付けて値化したいです。
Workbooks(WBK1).Select
で実行時エラー'438':オブジェクトは、このプロパティまたはメソッドをサポートしていません。
と出ます。どのように変更すれば動きますでしょうか・・・ご教授お願い致します。


'====================================

  Sheets("マクロセット").Select
  Workbooks.Open Filename:=Range("I4").Value & Range("L4").Value
  ThisWorkbook.Activate
'変数定義=============================
  Dim WBK1 As String, WBK2 As String
  WBK1 = Range("L4").Value
  WBK2 = ThisWorkbook.Name
'初期化====================================
  Workbooks(WBK1).Select
  Worksheets(1).Cells.Clear
  Worksheets(2).Cells.Clear
  Worksheets(3).Cells.Clear
'貼り付け====================================
  Workbooks(WBK2).Worksheets(5).Range("A:S").Copy Workbooks(WBK1).Worksheets(1).Range("A1")
  Workbooks(WBK1).Worksheets(1).Cells.Value = Workbooks(WBK1).Worksheets(1).Cells.Value
  Workbooks(WBK2).Worksheets(6).Range("A:S").Copy Workbooks(WBK1).Worksheets(2).Range("A1")
  Workbooks(WBK1).Worksheets(2).Cells.Value = Workbooks(WBK1).Worksheets(2).Cells.Value
  Workbooks(WBK2).Worksheets(7).Range("A:S").Copy Workbooks(WBK1).Worksheets(3).Range("A1")
  Workbooks(WBK1).Worksheets(3).Cells.Value = Workbooks(WBK1).Worksheets(3).Cells.Value

【77893】Re:代入について
発言  β  - 16/1/21(木) 14:08 -

引用なし
パスワード
   ▼はる さん:

コードは読んでいませんが、Workbookオブジェクトのメソッドに Select はありません。

コードペインで、

Workbooks(hoge). と、ピリオド間で入力すると、インテリセンス機能が働き
Workbookオブジェクトのプロパティやメソッドがアルファベット順に表示されます。
その中に Select はありませんね。

やるなら Activateメソッドを使いましょう。

ただ、本来は、ブック.Activate や シート.Select に頼らないコーディングが
望ましいのですが。

【77894】Re:代入について
回答    - 16/1/23(土) 9:29 -

引用なし
パスワード
   こんにちは。
そういうときはマクロの記録です。

エクセルのブックを2つ開いておいて(できれば2つ同時に見える状態で)
片方のブックで記録開始。
「もう一方のブックを選択する」という操作を行って記録終了。

記録されたマクロを見てみると
Workbooks("もう一方").Activateとなっている(ハズ)。
ほぉ〜.Activateかぁ、、、ということでコード修正 v(^^


で。もし余裕があれば Activate をヘルプで引いてみる。
(これは将来ヘルプが読めるようになるための準備運動)


▼はる さん:
>vba初心者です。行き詰ってしまったので解決策をお願いします。。
>マクロを起動するブックの"マクロセット"シートの
>I4 =開くファイルのフォルダ名 L4 = ファイル名を入れています。
>ファイルを開き、マクロブックのシート(5)を開いたブックのシート(1)に貼り付けて値化したいです。
>Workbooks(WBK1).Select
>で実行時エラー'438':オブジェクトは、このプロパティまたはメソッドをサポートしていません。
>と出ます。どのように変更すれば動きますでしょうか・・・ご教授お願い致します。
>
>
>'====================================
>
>  Sheets("マクロセット").Select
>  Workbooks.Open Filename:=Range("I4").Value & Range("L4").Value
>  ThisWorkbook.Activate
>'変数定義=============================
>  Dim WBK1 As String, WBK2 As String
>  WBK1 = Range("L4").Value
>  WBK2 = ThisWorkbook.Name
>'初期化====================================
>  Workbooks(WBK1).Select
>  Worksheets(1).Cells.Clear
>  Worksheets(2).Cells.Clear
>  Worksheets(3).Cells.Clear
>'貼り付け====================================
>  Workbooks(WBK2).Worksheets(5).Range("A:S").Copy Workbooks(WBK1).Worksheets(1).Range("A1")
>  Workbooks(WBK1).Worksheets(1).Cells.Value = Workbooks(WBK1).Worksheets(1).Cells.Value
>  Workbooks(WBK2).Worksheets(6).Range("A:S").Copy Workbooks(WBK1).Worksheets(2).Range("A1")
>  Workbooks(WBK1).Worksheets(2).Cells.Value = Workbooks(WBK1).Worksheets(2).Cells.Value
>  Workbooks(WBK2).Worksheets(7).Range("A:S").Copy Workbooks(WBK1).Worksheets(3).Range("A1")
>  Workbooks(WBK1).Worksheets(3).Cells.Value = Workbooks(WBK1).Worksheets(3).Cells.Value

【77895】Re:代入について
質問    - 16/1/23(土) 14:05 -

引用なし
パスワード
   訂正です。

> 記録されたマクロを見てみると
> Workbooks("もう一方").Activateとなっている(ハズ)。

Windows("もう一方").Activate です。
「ウィンドウなんか選択したつもりはないんだが」と思いつつ
そのまま使うも良し、

せっかくなのでWorkbooks("もう一方").Activateに書き替えて動作確認
うまく動いたら使うもよしです。

【77896】Re:代入について
お礼  はる  - 16/1/25(月) 8:53 -

引用なし
パスワード
   ▼佳 様 β様
返信たいへん遅くなり申し訳ありません。

別ブックを開いてコピーペースト を3つのブックに対して行うので
どうにか名前を指定せずに設定できればなぁ・・と思っていました。

Workbookに対して.SELECTが使えないのは完全に盲点でしたので
再度調整してみます。

またダメでしたら質問に来ます。
ありがとうございました。

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