Excel VBA質問箱 IV

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

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


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

【79804】フォーマットを別シートからのデータで埋める方法について そら 18/4/17(火) 13:43 質問[未読]
【79807】Re:フォーマットを別シートからのデータで... よろずや 18/4/17(火) 18:51 発言[未読]
【79816】Re:フォーマットを別シートからのデータで... そら 18/4/18(水) 11:58 質問[未読]
【79823】Re:フォーマットを別シートからのデータで... BJ 18/4/22(日) 23:02 発言[未読]
【79824】Re:フォーマットを別シートからのデータで... そら 18/4/23(月) 15:31 お礼[未読]
【79822】Re:フォーマットを別シートからのデータで... マナ 18/4/20(金) 22:57 発言[未読]
【79825】Re:フォーマットを別シートからのデータで... そら 18/4/23(月) 15:51 お礼[未読]
【79826】Re:フォーマットを別シートからのデータで... そら 18/4/23(月) 16:01 質問[未読]
【79836】Re:フォーマットを別シートからのデータで... そら 18/4/27(金) 11:14 お礼[未読]
【79839】Re:フォーマットを別シートからのデータで... マナ 18/4/28(土) 9:18 発言[未読]

【79804】フォーマットを別シートからのデータで埋...
質問  そら  - 18/4/17(火) 13:43 -

引用なし
パスワード
   エクセルのVBAを活用したいのですが、
どのようにしたらよいのか教えてください。

項目が入った入力用フォーマットがあり、
フォーマットの一部分だけ入力されているシートが複数あります。

一部だけ入力されたシートそれぞれから
統合用のフォーマットシート(入力欄はすべて空)を埋めていき、
すべての入力欄欄が埋まったシートを作成したい。

※ページの内容(いずれも同じフォーマット)
統合用シート
1111シート
2222シート
3333シート

統合用シートのA1セルが空欄の場合、1111、2222、3333のシートのいずれかで
A1セルにデータが入っているものがあれば、そのシートのA1のデータを統合用シートのA1にコピー。

という流れで考えましたが、上手くできませんでした。

上記と合わせて、表の中だけをマクロをかけたいので、その方法もご教示いただきたいです。
よろしくお願いいたします。

【79807】Re:フォーマットを別シートからのデータ...
発言  よろずや  - 18/4/17(火) 18:51 -

引用なし
パスワード
   >という流れで考えましたが、上手くできませんでした。
それを提示すると回答が付くと思いますよ。

【79816】Re:フォーマットを別シートからのデータ...
質問  そら  - 18/4/18(水) 11:58 -

引用なし
パスワード
   ▼よろずや さん:
>>という流れで考えましたが、上手くできませんでした。
>それを提示すると回答が付くと思いますよ。


回答ありがとうございます!

----------------------------------
Sub test001()

Dim i As Long
i = 1
Do While Cells(i, 1) = ""
Cells(i, 1) = ※1111、2222、3333のシートいずれかのA1セル(データが入っているもの)
i = i + 1
Loop
End Sub
----------------------------------

超初心者のため、上記形でどうにかならないかと考えましたが、
お恥ずかしいことに、以下の点でつまづいています・・

1.上記、1111、2222、3333のシートの中で
 データが入っているシートのA1セルを指定する方法

2.1111、2222、3333のすべてのシートでA1セルが空欄だった場合は
 どうしたらよいのか

3.フォーマットのA列の最下行まで来たら、B列の1列目から同じ処理を繰り返す方法。

4.フォーマット内が一部セル結合されているため、上記の方法で上手くコピーできるのか?


そもそも上記の処理では効率が悪いもしくは難しいのでしょうか・・?
他によい方法があれば教えていただきたいです。
どうぞよろしくお願いいたします。

【79822】Re:フォーマットを別シートからのデータ...
発言  マナ  - 18/4/20(金) 22:57 -

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

>項目が入った入力用フォーマットがあり、
>フォーマットの一部分だけ入力されているシートが複数あります。
>
>一部だけ入力されたシートそれぞれから
>統合用のフォーマットシート(入力欄はすべて空)を埋めていき、
>すべての入力欄欄が埋まったシートを作成したい。

シートのレイアウトを具体的に説明していただけますか。
どんなフォーマットなのか全くイメージできません。

【79823】Re:フォーマットを別シートからのデータ...
発言  BJ  - 18/4/22(日) 23:02 -

引用なし
パスワード
   途中まで、

Dim Shtb As Variant, sh As Worksheet,tt As Variant
Shtb = Array("1111", "2222", "3333")
On Error Resume Next
For Each tt In Shtb
  Set sh = Sheets(tt)
  If Err Then
    MsgBox tt & "が無い"
  Else
    If sh.Range("A1").Value = "" Then
     MsgBox "シート" & tt & "のA1が空白の時の処理"
    Else
     MsgBox "シート" & tt & "のA1が空白で無い時の処理"
    End If
  End If
  Err.Clear
Next
On Error GoTo 0

【79824】Re:フォーマットを別シートからのデータ...
お礼  そら  - 18/4/23(月) 15:31 -

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

ありがとうございます・・!
ただ私が初心者すぎて、上手く説明ができておらず申し訳ございません。。
数日間、再度自分で考えてみましたので、
再度、別途質問してもよいでしょうか・・?
もしよろしければアドバイスいただけますと幸いです。


>途中まで、
>
>Dim Shtb As Variant, sh As Worksheet,tt As Variant
>Shtb = Array("1111", "2222", "3333")
>On Error Resume Next
>For Each tt In Shtb
>  Set sh = Sheets(tt)
>  If Err Then
>    MsgBox tt & "が無い"
>  Else
>    If sh.Range("A1").Value = "" Then
>     MsgBox "シート" & tt & "のA1が空白の時の処理"
>    Else
>     MsgBox "シート" & tt & "のA1が空白で無い時の処理"
>    End If
>  End If
>  Err.Clear
>Next
>On Error GoTo 0

【79825】Re:フォーマットを別シートからのデータ...
お礼  そら  - 18/4/23(月) 15:51 -

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

ありがとうございます!
シートのフォーマットは、ちょっと複雑になっていて、
説明が難しいため、もし可能でしたら質問内容を変えますので、
そちらを確認いただいてもよいでしょうか・・?
申し訳ございません!


>▼そら さん:
>
>>項目が入った入力用フォーマットがあり、
>>フォーマットの一部分だけ入力されているシートが複数あります。
>>
>>一部だけ入力されたシートそれぞれから
>>統合用のフォーマットシート(入力欄はすべて空)を埋めていき、
>>すべての入力欄欄が埋まったシートを作成したい。
>
>シートのレイアウトを具体的に説明していただけますか。
>どんなフォーマットなのか全くイメージできません。

【79826】Re:フォーマットを別シートからのデータ...
質問  そら  - 18/4/23(月) 16:01 -

引用なし
パスワード
   みなさま、色々とアドバイスいただきありがとうございます。。
自分で少し考えてみましたので、質問内容を変えてもよいでしょうか?

If Worksheets("まとめシート").Range("C3") = "" Then
Worksheets("まとめシート").Range("C3") = Worksheets("xxxxx").Range("C3")

上記の処理を以下のような形に持っていきたのですが、
どのような形にしたらよいのでしょうか?

1.Worksheets("xxxxx")の部分は、毎回シート名が違うため、
 Worksheets("まとめシート")の右隣のシートを参照するようにしたいです。

2.上記はC3の処理ですが、上記と同じようにまとめシートの方が空欄の場合、
 右隣のシートの同じセルのデータを貼り付ける、という処理を
 指定した範囲内で繰り返したいです。
 (C3:F1000と、I6:M1000、O4:R1000)

3.上記範囲内は、一部セルの結合がされているのですが、
 上手く貼り付けできるようにしたいです。
 (例:C3:C18、O4:Q10など)

何度も申し訳ありませんが、どうぞよろしくお願いいたします。

【79836】Re:フォーマットを別シートからのデータ...
お礼  そら  - 18/4/27(金) 11:14 -

引用なし
パスワード
   こちら、皆様ありがとうございました。
また質問しなおしたいと思います。
初心者のため、質問の仕方も悪く申し訳ありませんでした。


▼そら さん:
>みなさま、色々とアドバイスいただきありがとうございます。。
>自分で少し考えてみましたので、質問内容を変えてもよいでしょうか?
>
>If Worksheets("まとめシート").Range("C3") = "" Then
>Worksheets("まとめシート").Range("C3") = Worksheets("xxxxx").Range("C3")
>
>上記の処理を以下のような形に持っていきたのですが、
>どのような形にしたらよいのでしょうか?
>
>1.Worksheets("xxxxx")の部分は、毎回シート名が違うため、
> Worksheets("まとめシート")の右隣のシートを参照するようにしたいです。
>
>2.上記はC3の処理ですが、上記と同じようにまとめシートの方が空欄の場合、
> 右隣のシートの同じセルのデータを貼り付ける、という処理を
> 指定した範囲内で繰り返したいです。
> (C3:F1000と、I6:M1000、O4:R1000)
>
>3.上記範囲内は、一部セルの結合がされているのですが、
> 上手く貼り付けできるようにしたいです。
> (例:C3:C18、O4:Q10など)
>
>何度も申し訳ありませんが、どうぞよろしくお願いいたします。

【79839】Re:フォーマットを別シートからのデータ...
発言  マナ  - 18/4/28(土) 9:18 -

引用なし
パスワード
   ▼そら さん:
>こちら、皆様ありがとうございました。
>また質問しなおしたいと思います。
>初心者のため、質問の仕方も悪く申し訳ありませんでした。

BJさんの 18/4/22(日) 23:02 の回答は参考になりませんでしたか?

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