アプリ版:「スタンプのみでお礼する」機能のリリースについて

マクロで、以下のような指示をして宛名シールを作りたいを思います。

住所一覧シートに、A列:住所、B列:宛名、C列:作成対象フラグ
このときに、C列が●なら宛名シールフォーマットのD1セルに住所一覧シートのA列(C列の2つ左のセル)の値、宛名シールフォーマットのE1セルに住所一覧シートのB列(C列の1つ左のセル)の値を返したい

どのように組めば良いでしょうか?

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

  • うーん・・・

    ネットで調べて、繰り返しの方法をいくつか試したのですが、うまくいかずこの質問に至っています。
    すみませんが、そのままコピペすれば良いレベルで教えていただけると助かります。

      補足日時:2019/07/29 15:46

A 回答 (4件)

こんにちは



>そのままコピペすれば良いレベルで教えていただけると助かります。
なさりたい繰り返しはわかりますが、ただ値を入れ替えるだけではないはずと思いますので、コピペしただけでは何も起こりませんが・・・

※ ●の文字は、異字体があるかも知れませんので、実際にご利用のものを記述ください。

Sub Sample()
With Worksheets("住所一覧シート")
 For Each c In .Cells(1, 3).Resize(.Cells(Rows.Count, 3).End(xlUp).Row)
  If c.Value = "●" Then
   Worksheets("宛名シールフォーマット").Range("D1").Value = c.Offset(0, -2).Value
   Worksheets("宛名シールフォーマット").Range("E1").Value = c.Offset(0, -1).Value

  Stop
   'それぞれのケースで処理したい内容を記述する(印刷するとか)

  End If
 Next c
End With
End Sub
    • good
    • 0
この回答へのお礼

ありがとうございます!
自分の組んでいるマクロに直してやったら、うまくいきました!

お礼日時:2019/07/30 15:25

マクロじゃないけど・・・


これ(下記)でよいのでは?

フィルター機能を使って、C列を『●』でフィルターをかける。
フィルター後のA~B列をコピペする。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
ですが、件数が多いものをマクロで一括処理したいという趣旨で質問していますので、コピペという選択肢はありませんでした。
また次回よろしくお願いします。

お礼日時:2019/07/30 15:28

私もパソコンを離れて5年以上経つので細かい命令文は忘れましたが、C列に●か◯が入ってる事が前提です。



For i! =1to 9000
If Sells(i!, 3) = ""
i! = 9999
Goto Exit
End If
If Sells(i! ,3) ="●"
Rang("D1") = Sells(i! ,1)
Rang("E1") = Sells(i! ,2)

プリントはマクロ記録でコーディングして見て下さい。

Rang("D1") =""
Rang("E1") =""
End If
Exit
Next i!

動作確認はしてませんが、上記の様な感じです。
    • good
    • 0
この回答へのお礼

ありがとうございました!
先にいただいた別の回答でできてしまったのですが、次回躓いたときに参考にさせていただきます。

お礼日時:2019/07/30 15:26

For、Nextのルーチンの中で添字を使い Sells(i、3)の様に変数iを1〜最大値に変化させてC列をIf分で確認し●なら必要なデータをSells(i、1)=Sells(i、4)の様に複写して印刷して、次のC列行を確認に行く。


C列がヌル(スペース)になったらiに最大値(99999)を入れてルーチンから抜け出し終了させるかな。
ちょっと古いプログラミングだけどね。
コーディングは少ないと思います。
頑張って下さい。
    • good
    • 0

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