Excel VBA質問箱 IV

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

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


15397 / 76738 ←次へ | 前へ→

【66820】開いたExcelのシート・セルの情報取得
質問  ANTON  - 10/10/8(金) 1:34 -

引用なし
パスワード
   お世話になっております。

先日の件に関して、メッセージボックスからユーザーフォームに変えた所、
下記問題に突き当たり困っております。ご助力いただけたらと思いますm(_ _)m

やりたい事としましては、

1.マクロで他Excelを開きます。

2.1で開いたExcelファイルの中からユーザーが任意のシートを選びます。

3.2で選んだシート内の任意のセルを選びます。

4.2で選んだシートをマクロを実行中のExcelにコピーします。

5.コピーしたシートを任意のシート名に変更します。

6.ユーザーフォーム内の指定されたテキストボックスに開いたExcel名・選んだシート名・選択したセルの列と行を表示します。

という作業をしようと思っています。
今悩んでいる問題点と致しまして、開いたエクセルから6の情報を表示するというマクロを作成することです。

1でシートを開いた後、モードレスで新しいユーザーフォームを表示し3でユーザーフォーム内の必要情報を取得、新ユーザーフォームのコマンドボタンを押すことでコピーを実施し6へ、という風にした場合は




新しいユーザーフォーム.show

Msgbox "シートをコピーしました。"


テキストボックスへ値の入力


End sub

とすると、新しいユーザーフォームが開いたと同時にその後の処理であるMsgboxやテキストボックスへの値の入力までが同時に行われてしまいます。
モードレスを解除するとコマンドボタンを押すまで処理は実行されないのですが、そうすると2.3の処理が行えなくなってしまいます。。。

別の方法として、ユーザーフォームを使わないでInputBoxを使用してやろうとました。
そうしたら、セルの行や列の情報を得ることは出来てもシートのコピーやシート名などシートに関する処理で思ったとおりの結果を出すことが出来ませんでした。。。

シート名やセルの行や列の情報は別の処理で値を使用するので、変数として保存しなければなりません。


以上の経緯から
ユーザーフォームをモードレスで使用してもその後の処理を待機させる方法、あるいはInputBoxを使用してシート名やシートのコピーを実現する方法を模索中ですが良い案が浮かびません。。。
今、その作成したVBAのあるExcelファイルが手元になく、コードをかけなくて申し訳ないのですが ご助力いただけませんでしょうか。

0 hits

【66820】開いたExcelのシート・セルの情報取得 ANTON 10/10/8(金) 1:34 質問
【66822】Re:開いたExcelのシート・セルの情報取得 Hirofumi 10/10/8(金) 8:42 発言
【66832】Re:開いたExcelのシート・セルの情報取得 Hirofumi 10/10/8(金) 20:16 発言
【66833】Re:開いたExcelのシート・セルの情報取得 ANTON 10/10/9(土) 0:40 お礼

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