プロが教えるわが家の防犯対策術!

シート【基本情報】とシート【データ入力】というシートがある雛形があります。
【基本情報】の(3行目から始まる、最終的100行目くらい)D列に「ほにゃらら」と書いてあるセルを探して、「ほにゃらら」と書いてあれば
以下のようにコピーし、「値」でペーストします。(【基本情報】の「ほにゃらら」が▲行目の場合)

【基本情報】C▲⇒【データ入力】A5
【基本情報】D▲⇒【データ入力】B5
【基本情報】E▲⇒【データ入力】C5

以上までの工程が終われば、現在、雛形のあるフォルダーに「名前をつけて保存」します。
保存名は、すべて【基本情報】から以下のように拾う。

B▲+スペース+C▲+スペース+ほにゃらら

ここまでの工程が終わったら、別の行の(●、■、、、)「ほにゃらら」を、探し、該当がなくなるまで工程を繰り返す。

************************************************

以上のようなマクロは組めますでしょうか?このマクロがあれば、業務がずいぶん飛躍的、かつ劇的に効率があがります…。
宜しくお願いします。

質問者からの補足コメント

  • ミス訂正、補足

    シート【基本情報】、シート【データ入力】、【データ入力】に書かれたものが反映していくシート×4、あるエクセル雛形ブック。
    【基本情報】のE列にある「ほにゃらら」と書いてるセル(3行目から始まる、最終的100行目くらい)の該当を探し、該当すれば
    以下の様にコピー、「値」でペースト。(【基本情報】該当「ほにゃらら」が▲行目の場合)

    【基本情報】C▲⇒【データ入力】A5
    【基本情報】D▲⇒【データ入力】B5
    【基本情報】E▲⇒【データ入力】C5

    以上までの工程が終われば、現在、雛形ブックのあるフォルダーに、全てのシート(ブックまま)「名前をつけて保存。
    保存名は【基本情報】から拾い、以下の様に。

    B▲/C▲/ほにゃらら
    (Cには氏名が入るので同名の可能性は低)

    ここまでの工程が終えたら、E列、別の行の(●、■、…)「ほにゃらら」を探し、該当なくなるまで工程を繰り返す。

      補足日時:2017/04/17 14:17
  • うれしい

    テスト結果、途中までの経過で
    d="ほにゃらら"
    で問題ありませんでした!

    No.3の回答に寄せられた補足コメントです。 補足日時:2017/04/17 14:20

A 回答 (3件)

こんにちは



>以上のようなマクロは組めますでしょうか?
ご質問文を読む限りでは、マクロでできないような内容は無さそうなので、マクロ化することは可能だと想像します。

ただし、ご質問文を読んでも、実際に何をどうなさりたいのか、私にはさっぱりわからないので、残念ながら、具体的なマクロを作成することはできなさそうです。
内容を理解できる方が、マクロを作成してくれるのを待ちましょう。
    • good
    • 0
この回答へのお礼

期待して待ちます!!

お礼日時:2017/04/17 13:19

最初に、掲示板の質問でマクロの製作依頼というのは、マクロを専門に回答する人たちにとっては、敬遠すべきひとつなのですが、それでも、完成させる人たちがいます。



その中には、まったく素人だというのに、フローチャートのような内容で、理路整然と書かれた文章を見せる人がいます。

以前、私は、そういう方に出会い、本当にプログラミングなどを知らないとしたら、大したものだと関心してしまいました。(もしかしたら、私は上手にノセられたかもしれません。)

フローチャート自体は書けなくても、論理的(筋を追って)かければ問題がないのですが……
-------------------------------
..\A_folder\BookA のシート【基本情報】?
..\A_folder\BookB  のシート【データ入力】?

『始まり:』
Sheet【基本情報】の
[D列の3行目から最終的100行目+@の間](固定)
  から、値が、(仮)「ほにゃらら」のセル?
  を検索し、
 同じ行の以下の列の行(▲)を、
  C▲⇒【データ入力】A5
  D▲⇒【データ入力】B5
  E▲⇒【データ入力】C5
【基本情報】シートの「値貼り付け」にする。

..\A_folder「雛形のあるフォルダー」?

  B(▲)&スペース+C(▲)+スペース+「ほにゃらら」?
に「名前をつけて保存」

//別の行の ?
『始まり』に戻る=>
---------------------------------
マクロがある程度分かる方なら、どなたでも、この中で、問題がある部分が分かるとは思います。人によっては、回答者側が予めこうだと決めて書く人もいますが、私はしません。ただ、私の場合はエラー対策を考えて、それが仇になっていることが多いのです。

それと、「雛形」という単語は、プログラミングでは、Class を意味しますが、Excelではテンプレートを指すことにもなり、基本的にひな形は書き換えをしないものであることから、そう呼ばれたりします。鯛焼きの鋳型のようなものです。

その最初のシートとブックの関係を位置関係を示さないと分かりません。

..\A_folder\BookA のシート【基本情報】?
//BookA//というブックの中に、基本情報,データ入力シートがあるのか、不明

>値が、(仮)「ほにゃらら」のセル?
これはどこにあるセルなのか分かりません。

> B(▲)&スペース+C(▲)+スペース+「ほにゃらら」?

ファイル名に空白を入れても良いのですが、空白はどちらかというと、あまりよろしくないと思います。
それと、もうひとつは、ブックにデータが3つしかないのに、それで、100行で場合によっては、場合によっては、100個もファイルを作るのか、同名の処理をどうするとか、疑問を感じます。

>別の行?
どこなのでしょうか、表現としては成立しても、意味をなしません。

>以上のようなマクロは組めますでしょうか?
ご自身でマクロを組むにしても、誰が組むにしても、プログラミングとして曖昧さのない筋立てを考えられれば、可能だと思います。臨機応変に、利用できるものは利用することを考え、仕事を完成させることを優先させればよいと思います。難しいことは後に考えればよいことです。
    • good
    • 0
この回答へのお礼

ご指摘ありがとうございます!早速いただいたものを反映し、補足にさらなる情報を書きたいと思います。

お礼日時:2017/04/17 13:19

a=ws1のD列最終行番号


d=検索値の入力されているセルの値(今回は仮にws1のA1セルとしました)
b=ws1のi行B列の値
c=ws1のi行C列の値
myFile=ファイルを保存するパスとファイル名
としています。

ws1の3行目からa行目までiのループで総当たりで、
条件分岐で、もしws1のi行D列の値がd("ほにゃらら"でもいいです)と同じならば
ws2のA5セルからC5セルにws1のi行C列からE列の値を代入します。
ws2をコピーし、保存ファイル名をmyFileとします。
アクティブブック(この場合myFile)を閉じます。
次のiをループします。

検索値を「ほにゃらら」として固定すると「ほにゃらら」しか検索できませんので、今回はws1のA1セルに検索値が入力されているものとしました。(セル番地は任意の場所に変更してください)
検索値は「ほにゃらら」だけでいいのなら「d="ほにゃらら"」とし、他の値を検索する場合はVBEの画面でdの値を変更してください。。

Sub test()
Dim ws1 As Worksheet, ws2 As Worksheet
Dim myFile As String
Dim a, b, c, d, i As Long
Set ws1 = Worksheets("基本情報")
Set ws2 = Worksheets("データ入力")
a = ws1.Cells(Rows.Count, "D").End(xlUp).Row
d = ws1.Range("A1").Value
Application.ScreenUpdating = False
For i = 3 To a
If ws1.Cells(i, "D").Value = d Then
ws2.Range("A5").Resize(1, 3).Value = ws1.Cells(i, "C").Resize(1, 3).Value
b = ws1.Cells(i, "B").Value
c = ws1.Cells(i, "C").Value
myFile = ThisWorkbook.Path & "\" & b & " " & c & " " & d & ".xlsx"
ws2.Copy
ActiveWorkbook.SaveAs Filename:=myFile
ActiveWorkbook.Close
End If
Next i
Application.ScreenUpdating = True
End Sub
この回答への補足あり
    • good
    • 1
この回答へのお礼

ありがとうございます!
いい感じのところまで(データ反映、ファイル書き出し)行きました。
しかしながら、No.2さんのご指摘のとおり、お願いの仕方が悪かった部分があり、思っていたとおりの結果にはなりませんでした。私が悪いのです!!

ファイル書き出しは【データ入力】シートだけでなく、もともとひな形に世用意してあったシートすべてを入れたまま(ブックごと)保存したいのです。

また最初のお願いの段階で、私のお願いミスを見つけました。補足に書き直します。

よければ再度お願い申し上げ候!!!!

お礼日時:2017/04/17 13:34

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!