Excel VBA質問箱 IV

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

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


7034 / 13644 ツリー ←次へ | 前へ→

【41601】あるセルの内容と同じシート名を探してデータを移動させたい 裕香 06/8/16(水) 14:38 質問[未読]
【41602】Re:あるセルの内容と同じシート名を探して... ぱっせんじゃー 06/8/16(水) 14:46 発言[未読]
【41603】Re:あるセルの内容と同じシート名を探して... ぱっせんじゃー 06/8/16(水) 14:47 発言[未読]
【41604】Re:あるセルの内容と同じシート名を探して... ぱっせんじゃー 06/8/16(水) 15:01 発言[未読]
【41606】Re:あるセルの内容と同じシート名を探し... 裕香 06/8/16(水) 19:26 お礼[未読]
【41607】Re:あるセルの内容と同じシート名を探し... ぱっせんじゃー 06/8/16(水) 20:30 発言[未読]
【41618】Re:あるセルの内容と同じシート名を探し... 裕香 06/8/17(木) 10:01 お礼[未読]

【41601】あるセルの内容と同じシート名を探してデ...
質問  裕香  - 06/8/16(水) 14:38 -

引用なし
パスワード
   初めて利用させてもらいます。宜しくお願いします。
現在、データ収集フォームを作成中ですが、Excelのあるセルに同じBOOK内のシート名を
ドロップダウンリスト(10〜12)で選択させ、このセルと同じ名前のシートに、ここの入力フォームに入力された50こ近い情報を移動させたい。
悩んでいるのは、セルに入った文字と同じシート名を探す!という手順です。
初心者ですので、できるだけ解かりやすく教えていただくと嬉しいです。m(_ _)m

【41602】Re:あるセルの内容と同じシート名を探し...
発言  ぱっせんじゃー  - 06/8/16(水) 14:46 -

引用なし
パスワード
   必ず存在するシート名なら、探す必要は内容に思います。

>ここの入力フォームに入力された50こ近い情報を移動させたい。

移動、というのもわかりにくいです。
転記とは別のことですか?

転記だとしたら、該当シートのどこに転記させたいのでしょう?

【41603】Re:あるセルの内容と同じシート名を探し...
発言  ぱっせんじゃー  - 06/8/16(水) 14:47 -

引用なし
パスワード
   >必ず存在するシート名なら、探す必要は内容に思います。

↓の間違いでした。失礼しました。

必ず存在するシート名なら、探す必要はないように思います。

【41604】Re:あるセルの内容と同じシート名を探し...
発言  ぱっせんじゃー  - 06/8/16(水) 15:01 -

引用なし
パスワード
   テキストボックスの値をシート1のA1に表示された
名前のシートのA列の最終行の次の行に転記する
サンプルです。

Dim sht as string
 sht = worksheets("Sheet1").Range("A1").Value
  worksheets(sht).Range("A65536").End(Xlup).Offset(1).Value = _
  UserForm1.TextBox1.Value

50個近い情報というのがテキストボックスなのか何か分かりませんが、
仮にテキストボックスだとすると、テキストボックスの数だけループ
させて転記します。

また、A列の最終行の次の行の行番号も変数に取得しておきます。

'変数の宣言
Dim i as long
Dim MyRow as long
dim sht as string
 'シート名の取得/変数shtに格納
 sht = worksheets("Sheet1").Range("A1").Value
 '取得したシートのA列の最終行の次の行の行番号取得/変数myrowに格納
 myrow = worksheets(sht).Range("A65536").End(Xlup).Offset(1).row
  'ループ処理
  For i = 1 to 50
   worksheets(sht).cells(myrow,i).Value = _
   UserForm1.Controls("TextBox" & i).Value
  next i

【41606】Re:あるセルの内容と同じシート名を探し...
お礼  裕香  - 06/8/16(水) 19:26 -

引用なし
パスワード
   早速回答ありがとうございます。
入力フォームはテキストボックスではなく、セルです。
移動という表現もおかしいですね。コピーです。
例えばA1にシート名と全く同じものが入り、
B1.C1.D1、、、と横にずら〜っと入った情報を
A1のシート名と同じ名前のシートの最終行にコピーする!
ただそれだけなのです。
だから別にループしなくても良いのです。
となると、回答いただいたサンプルの何処をどう使えばいいですか?
すみません。無知で(@_@)

【41607】Re:あるセルの内容と同じシート名を探し...
発言  ぱっせんじゃー  - 06/8/16(水) 20:30 -

引用なし
パスワード
   マクロの自動記録をして見ましょう。
↓はB12:G12をシート1のB列の最終行
の次の行に貼り付ける作業を自動記録
したものです。

  Range("B12:G12").Select
  Selection.Copy
  Sheets("Sheet1").Select
  Range("B65536").Select
  Selection.End(xlUp).Select
  Range("B13").Select
  ActiveSheet.Paste
  Application.CutCopyMode = False

これは、↓のように簡略化できます。
※Offsetは自動記録では出ません。
Offset(1)
で1行下という意味です。
詳しくはVBAヘルプをご参照ください。

  Range("B12:G12").CopySheets("Sheet1").Range("B65536").End(xlUp).Offset(1)

なお
Range("B12:G12")
のようにシートを明示しないとアクティブシートのB12:G12とみなされます。
他のシートがアクティブの時でも大丈夫なように、
WorkSheets("Sheet2").Range("B12:G12")
のようにシートを明示しましょう。

【41618】Re:あるセルの内容と同じシート名を探し...
お礼  裕香  - 06/8/17(木) 10:01 -

引用なし
パスワード
   親切に対応頂きありがとうございました。お陰で出来ました。
嬉し〜い!
これで、現場の作業員に使ってもらえると思います!
これからはもっと自分でヘルプを活用するよう、頑張って見ます!

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