Excel VBA質問箱 IV

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

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


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

【30853】飛び飛びのセルの値を別ブックのシートへ allex 05/11/6(日) 0:01 質問[未読]
【30858】Re:飛び飛びのセルの値を別ブックのシートへ ponpon 05/11/6(日) 1:22 発言[未読]
【30860】Re:飛び飛びのセルの値を別ブックのシートへ allex 05/11/6(日) 1:58 お礼[未読]
【30865】Re:飛び飛びのセルの値を別ブックのシートへ ぽんかん 05/11/6(日) 10:03 回答[未読]
【30867】Re:飛び飛びのセルの値を別ブックのシートへ allex 05/11/6(日) 11:53 お礼[未読]
【30868】Re:飛び飛びのセルの値を別ブックのシートへ allex 05/11/6(日) 13:05 質問[未読]
【30875】Re:飛び飛びのセルの値を別ブックのシートへ Akisame 05/11/6(日) 14:11 発言[未読]
【30877】Re:飛び飛びのセルの値を別ブックのシートへ allex 05/11/6(日) 14:41 質問[未読]
【30878】Re:飛び飛びのセルの値を別ブックのシートへ とまと 05/11/6(日) 14:54 発言[未読]
【30880】Re:飛び飛びのセルの値を別ブックのシートへ allex 05/11/6(日) 15:07 質問[未読]
【30881】Re:飛び飛びのセルの値を別ブックのシートへ とまと 05/11/6(日) 15:12 回答[未読]
【30882】Re:飛び飛びのセルの値を別ブックのシートへ allex 05/11/6(日) 15:39 お礼[未読]
【30883】Re:飛び飛びのセルの値を別ブックのシートへ Akisame 05/11/6(日) 15:41 発言[未読]
【30886】Re:飛び飛びのセルの値を別ブックのシートへ allex 05/11/6(日) 17:11 お礼[未読]
【30888】Re:飛び飛びのセルの値を別ブックのシートへ ponpon 05/11/6(日) 18:59 発言[未読]
【30889】Re:飛び飛びのセルの値を別ブックのシートへ allex 05/11/6(日) 19:17 お礼[未読]

【30853】飛び飛びのセルの値を別ブックのシートへ
質問  allex  - 05/11/6(日) 0:01 -

引用なし
パスワード
   参考書見ながら試したのですがどうしてもダメで今回質問させていただきました。
A ブックの セルA! B4  F7 のそれぞれの値を B ブックの セル
 A1 は B ブックの C1 へ
 B4 は B ブックの D7 へ
 F2 は B ブックの H5 へ
それぞれ貼り付けたいのですが どのように書いたらいいのでしょうか。
あれこれ書いているとこんがらがって訳がわからなくなってしまいました。
宜しくお願いします。

【30858】Re:飛び飛びのセルの値を別ブックのシー...
発言  ponpon  - 05/11/6(日) 1:22 -

引用なし
パスワード
   こんばんは。

>A ブックの セルA! B4  F7 のそれぞれの値を B ブックの セル
> A1 は B ブックの C1 へ
> B4 は B ブックの D7 へ
> F2 は B ブックの H5 へ

タイプミスが多くて、正しいセル位置がよくわからないのですが、

A.xlsとB.xlsの二つとも開いているものとします。
シート名はそちらに合わせてください。

Sub test()
  Dim WH1 As Worksheet
  Dim WH2 As Worksheet

  Set WH1 = Workbooks("A.xls").Worksheets("Sheet1")
  Set WH2 = Workbooks("B.xls").Worksheets("Sheet1")
  
  With WH2
    .Range("C1").Value = WH1.Range("A1")
    .Range("D7").Value = WH1.Range("B4")
    .Range("H5").Value = WH1.Range("F2")
  End With
  
  Set WH1 = Nothing: Set WH2 = Nothing
End Sub

【30860】Re:飛び飛びのセルの値を別ブックのシー...
お礼  allex  - 05/11/6(日) 1:58 -

引用なし
パスワード
   ponpon 様
丁寧なご返信ありがとうございます。
タイプミスでセルが分かりにくかった事お詫び申し上げます。
早速、入力して試してみます。
素人の質問で面倒とは思いますが今後ともよろしく
お願いします。
ponponさんのように早くなんでもプログラムが出来るように
なりたいものです。
無理かな?
試してまたご連絡します。

【30865】Re:飛び飛びのセルの値を別ブックのシー...
回答  ぽんかん  - 05/11/6(日) 10:03 -

引用なし
パスワード
   ▼allex さん:
Bookのオープンから練習のため作成しました。
ご参考まで・・・

Sub test2()
  Dim BK1 As Workbook
  Dim BK2 As Workbook
  
  Set BK1 = ThisWorkbook
  Set BK2 = Workbooks.Open(ThisWorkbook.Path & "\BK2.xls")
  
   With BK2.Sheets(1)
    .Range("a1").Value = BK1.Sheets(1).Range("c1")
    .Range("b4").Value = BK1.Sheets(1).Range("d7")
    .Range("f2").Value = BK1.Sheets(1).Range("h5")
  End With
  
    
  BK1.Close False
  Set BK1 = Nothing
  
End Sub

【30867】Re:飛び飛びのセルの値を別ブックのシー...
お礼  allex  - 05/11/6(日) 11:53 -

引用なし
パスワード
   ▼ぽんかん さん:
ぽんかんさん、ご指導感謝します。VBAって同じ作業をするとき
製作する方によって若干違うのですね。
書き方が色々あるということなんですね。
nothing と false は結局同じ意味になるのですね。
このご指導いただいたコードを使用して作成してみます。
VBAってやはり基礎が大事ですね。でも勉強はこのようなサイトで
詳しい方にご指導願いながら自分で書いて見るほうが
参考書を見ながらするより遥かに頭に入る気がします。
これからも宜しくお願いします。
ありがとうございました。
                       allex

【30868】Re:飛び飛びのセルの値を別ブックのシー...
質問  allex  - 05/11/6(日) 13:05 -

引用なし
パスワード
   ponponさん、ぽんかんさん、再度ごめんなさい。おねがいします。
下記コードで操作したいことは
denpyo001.xls の 納品請求書(シート名です。)のセルC5に入力された名前の
シート(売掛.xlsの中のシートです)を開き、納品請求書の別のセルに入力されて
いる値(例えば、品名、数量、金額、備考などが不規則なセルに入力されている値)
を 売掛.xls の開かれたシート (納品請求書のセルC5の値のシート名)の
不規則なセルにそれぞれペーストする。ということをしたいのですが
教わったコードなどをつぎはぎで作っていますがエラーになります。
どうしたらいいでしょうか?
宜しくお願いします。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

Private Sub CommandButton2_Click()

Dim mysheet As String
Dim mybook As Workbook
Dim myopensheet As Worksheet
Dim mysheet1 As Worksheet

mysheet = ThisWorkbook.Sheets("納品請求書").Range("c5").Value

Set mybook = workbooks.Open(Filename:=ThisWorkbook.Path & "\売掛.xls")
mybook.Activate
For Each myopensheet In mybook.worksheets
If myopensheet.Name = mysheet Then
mybook.Sheets(mysheet).Activate

Set mysheet1 = workbooks("denpyo001.xls").worksheets("納品請求書")
Set myopensheet = workbooks("売掛.xls").worksheets("mysheet")
With myopensheet
.Range("b7").Value = mysheet1.Range("h3")
.Range("h7").Value = mysheet1.Range("h15")
.Range("e7").Value = mysheet1.Range("c15")
End With

Set mysheet1 = Nothing: Set myopensheet = Nothing

Exit Sub
End If
Next
MsgBox "指定したシートがありません。"

End Sub

宣言の仕方が間違っているのでしょうか・
コードそのものがダメですか。

【30875】Re:飛び飛びのセルの値を別ブックのシー...
発言  Akisame  - 05/11/6(日) 14:11 -

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

この下の文章は理解に苦しみます。
簡潔に書き直された方が、レスがあるのでは?
わた者、読解力もあるほうですが・・・分かりません´

>denpyo001.xls の 納品請求書(シート名です。)のセルC5に入力された名前の
>シート(売掛.xlsの中のシートです)を開き、納品請求書の別のセルに入力されて
>いる値(例えば、品名、数量、金額、備考などが不規則なセルに入力されている値)
>を 売掛.xls の開かれたシート (納品請求書のセルC5の値のシート名)の
>不規則なセルにそれぞれペーストする。ということをしたいのですが
>教わったコードなどをつぎはぎで作っていますがエラーになります。
>どうしたらいいでしょうか?
>宜しくお願いします。
>
>

【30877】Re:飛び飛びのセルの値を別ブックのシー...
質問  allex  - 05/11/6(日) 14:41 -

引用なし
パスワード
   ▼Akisame さん:
ごめんなさい。
denpyo001.xls と 売掛.xls の2つのブックがあります。
denpyo001.xls に見積、注文書、請求書 の3シートがあります。
売掛.xls    に顧客別の名前の付いたシートが複数あります。

請求書には顧客名、品名や数量、合計金額などが入力されます。
このとき顧客名が入力されたセルを参照して
売掛.xlsを開き顧客名のシートを選択し請求書の内容を
顧客名のシートに転記します。
このとき請求書の各項目の入力セル番号と顧客名シートの入力セル番号は
違います。
例 請求書の品名は C3 に入力されますが
  顧客名シートは F5 に入力する。

というような感じです。
ご理解願えましたか??
                      すいません。宜しくね

【30878】Re:飛び飛びのセルの値を別ブックのシー...
発言  とまと  - 05/11/6(日) 14:54 -

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

1)エラーになるそうですが、コードのどこでデバックしますか?
2)あとエラーメッセージはどんなのがでてますか?

【30880】Re:飛び飛びのセルの値を別ブックのシー...
質問  allex  - 05/11/6(日) 15:07 -

引用なし
パスワード
   ▼とまと さん:
ご覧いただきありがとうございます。

症状  売掛.xls がアクティブになり指定した顧客名のシートが選択されて
ここでとまり、

実行時エラー'9':
インデックスが有効範囲にありません。

と表示され

コード with の前の
set myopensheets = workbooks("売掛.xls").worksheets("mysheet")

のところで黄色の帯矢印です。

ご迷惑おかけします。宜しくお願いします。

【30881】Re:飛び飛びのセルの値を別ブックのシー...
回答  とまと  - 05/11/6(日) 15:12 -

引用なし
パスワード
   こんにちは。

>set myopensheets = workbooks("売掛.xls").worksheets("mysheet")

mysheetは変数だから 

set myopensheets = workbooks("売掛.xls").worksheets(mysheet)

じゃないかな。

("mysheet")だとmysheetという名前のシートがないよ。
といわれてるんだと思います。


 

【30882】Re:飛び飛びのセルの値を別ブックのシー...
お礼  allex  - 05/11/6(日) 15:39 -

引用なし
パスワード
   ▼とまと さん:
やはり付け焼刃はダメですね。
おっしゃる通り一発で解決いました。
このコードのことで2ヶ月以上悩みました。
VBAの書籍は一杯ありますが、なかなか自分の作りたい帳票などは
人様にはわからないものですよね。従って書籍には一般的な事例で
解説してあり実践的なものはあまりないので
勉強はこうしてとまとさんや皆さんに勉強させていただくことの方が
確実に実践に役立ちますね。
ありがとうございます。
取りあえず此処までは問題解決しました。
助かりました。
今回皆さんに本当に迅速にご指導いただきました。
心より厚く御礼申し上げます。
今後ともよろしくお願いいたします。
                                allex

【30883】Re:飛び飛びのセルの値を別ブックのシー...
発言  Akisame  - 05/11/6(日) 15:41 -

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

>denpyo001.xls と 売掛.xls の2つのブックがあります。
>denpyo001.xls に見積、注文書、請求書 の3シートがあります。
>売掛.xls    に顧客別の名前の付いたシートが複数あります。
>
>請求書には顧客名、品名や数量、合計金額などが入力されます。

この上までは分かりますが、後は意味が今一ですね。

>このとき顧客名が入力されたセルを参照して・・・このとき?顧客名のどこを参照?
>売掛.xlsを開き顧客名のシートを選択し請求書の内容を
>顧客名のシートに転記します。
>このとき請求書の各項目の入力セル番号と顧客名シートの入力セル番号は
>違います。
>例 請求書の品名は C3 に入力されますが
>  顧客名シートは F5 に入力する。
>
>というような感じです。
>ご理解願えましたか??
>                      すいません。宜しくね
理解できません⇒シートの形をはっきりと明示されると、こちらでも
表を作成して、マクロの動作が復元できるのですが・・・


分かる内容は分類すると以下のレベルです。ここまでは間違いないでしょうか。
ブック「denpyo001」
シート「顧客名」「注文書」「請求書」がある

ブック 「売掛」
シート 顧客名の複数シート、「AA」「BB」「CC」・・・

「請求書」に顧客名、品名や数量、合計金額の項目がある⇒どこに作成されています

【30886】Re:飛び飛びのセルの値を別ブックのシー...
お礼  allex  - 05/11/6(日) 17:11 -

引用なし
パスワード
   ▼Akisame さん:
Akisameさん、ご連絡ありがとうございます。
文章能力不足でご迷惑おかけしてごめんなさい。
今回 ponponさん、ぽんかんさん、とまとさん 皆さんのご指導で
何とか解決しました。
自分で勉強してるつもりですが実践と参考書は雲泥の差がありますね。
実践で使えるようになるにはこのようなサイトで怒られたり、やさしく
教えてもらったり、そして教えてもらったことをすぐに実践することですね。
早くAkisameサンたちのように他の方に教えて上げることが出来るように
勉強します。
今後ともよろしくお願いします。
本当にありがとうございました。
                            allex

【30888】Re:飛び飛びのセルの値を別ブックのシー...
発言  ponpon  - 05/11/6(日) 18:59 -

引用なし
パスワード
   こんにちは。
もう見てないかな。
「下手な鉄砲も数撃ちゃ当たる。」
私も1年前は、VBAのVの字もわかりませんでした。
ichinoseさん、Keinさん、かみちゃんさん、・・・の回答を見ながら
自分で作ってみる→失敗→質問→回答、作ってみる→動く
もっと速い方法を知る→やってみる失敗→質問→回答、動く
これの繰り返しでした。今でも質問を見て作ってみる→失敗→
他の人の回答をRomして自分で理解する→次の人に回答→お礼
これの繰り返しです。
常連さん達には、迷惑でしょうが、おかげでずいぶんVBAが理解できるように
なりました。
allexさんもがんばってください。

【30889】Re:飛び飛びのセルの値を別ブックのシー...
お礼  allex  - 05/11/6(日) 19:17 -

引用なし
パスワード
   ▼ponpon さん:
みてますよ。
本当に色々ありがとうございます。
実践 はどうしても自分が勝手に「此処でクリック、あれやこれやに転記、そのとき
こっちにも転記したい、一度にこれとこれを記入したい。」などなど
思いついたことをやりたいと思うのでだんだん複雑になってもう訳わからなく
なってしまいますが、参考書では絶対に解決できません。
今回皆さんにご質問させていただいたような事例は参考書には出ていませんからね。
やっぱりこのようなサイトで詳しい方のアドバイスを受けなければ出来ませんね。
今から勉強してponponさんに教えて上げられるようにならないと!
それまでは教えてくださいね。
ponponさんはこのサイトには頻繁に訪問されていますか?
allexの質問があったらお願いしますね。
                             allex

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