お世話になっております。
QRコードを使ってラベルを作ろうと思います。
QRコード単体を作成はできましたが、どのように連続で処理させればよいか悩んでいます。
やりたいこととしては、
A8セルの情報をQRコード化してD2に貼り付け
A15セルの情報をQRコード化してD9に貼り付け
A22セルの情報をQRコード化してD16に貼り付け
A29セルの情報をQRコード化してD23に貼り付け
A36セルの情報をQRコード化してD30に貼り付け
これを列を移動させて連続して処理させたいです。
下記に現状のコードを記載します。
Sub createQRCode()
Dim ws As Worksheet
Dim xObjOLE As OLEObject
Dim topPosition As Double
Dim leftPosition As Double
Set ws = Worksheets("Sheet1")
Set xObjOLE = ws.OLEObjects.Add("BARCODE.BarCodeCtrl.1")
With xObjOLE.Object
'QRコード(=11)を指定
.Style = 11
.Value = Cells(8, 1).Value
End With
With ws.Range("D2").MergeArea
topPosition = .Top
leftPosition = .Left
End With
With xObjOLE
.Height = 19.5
.Width = 49.5
.Top = topPosition
.Left = leftPosition
End With
Set xObjOLE = Nothing
End Sub
マクロに関して初心者で無知の為
お力添え頂ければ幸いです。
よろしくお願いいたします。
No.3ベストアンサー
- 回答日時:
元のcreateQRCodeに多少手を加えました。
以下のようにしてください。(QR5X5を呼び出してください)
Sub QR5X5()
Dim wy As Long '下方向へのブロック番号
Dim wx As Long '右方向へのブロック番号
For wy = 1 To 5
For wx = 1 To 5
Call createQRCode(wy, wx)
Next
Next
End Sub
Sub createQRCode(wy As Long, wx As Long)
Dim wrow1 As Long '入力値行
Dim wcol1 As Long '入力値列
Dim wrow2 As Long 'QRコード貼り付行
Dim wcol2 As Long 'QRコード貼り付列
wrow1 = 7 * (wy - 1) + 8
wcol1 = 5 * (wx - 1) + 1
wrow2 = 7 * (wy - 1) + 2
wcol2 = 5 * (wx - 1) + 4
Dim ws As Worksheet
Dim xObjOLE As OLEObject
Dim topPosition As Double
Dim leftPosition As Double
Set ws = Worksheets("Sheet1")
Set xObjOLE = ws.OLEObjects.Add("BARCODE.BarCodeCtrl.1")
With xObjOLE.Object
'QRコード(=11)を指定
.Style = 11
.Value = Cells(wrow1, wcol1).Value
End With
With ws.Cells(wrow2, wcol2).MergeArea
topPosition = .Top
leftPosition = .Left
End With
With xObjOLE
.Height = 19.5
.Width = 49.5
.Top = topPosition
.Left = leftPosition
End With
Set xObjOLE = Nothing
End Sub
返信ありがとうございます。
私のコードを元に改良していただいたおかげで、内容がわかりやすく助かりました。
今後改修するかもしれないので、自分でできるように勉強してみます。
No.2
- 回答日時:
こんにちは
ご質問の文章に限ってよいのなら・・
単純に列挙してしまって、
For Each c in Range("A8,A15,A22,A29,A36")
’対象の値を c.Value
'貼り付け先を c.Offset(-6,3) にして処理
Next c
のようにしてループすれば終わると思いますけれど、添付の図を見ると対象範囲がもっと広そうな・・
範囲不定なら、まず処理対象の範囲を取得してから、その中で行を7行おき、列は5列おきにループするような構成にしておけば良いのではないでしょうか?
For rw=8 To maxRow Step 7
For col = 1 To maxCol Step 5
’ 1件分の処理
' 処理対象セルは Cells(rw, col) になる
Next col
Next rw
みたいな感じです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) 【VBA】写真の縦横比を変えずに貼り付ける 5 2023/06/13 11:42
- Excel(エクセル) 【マクロ】スクショ印刷がうまく動かない件 5 2022/12/06 17:37
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- PowerPoint(パワーポイント) ExcelのVBAコードについて教えてください。 3 2022/05/25 14:32
- Visual Basic(VBA) VBA 参照先で選んだファイルをコピーし、出力先に別名で保存したい 8 2022/05/13 20:37
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) エクセルVBAで以下のようなコードを書いたらエラーになりました。何処が間違っているの教えて? 1 2023/02/10 18:30
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- Excel(エクセル) Excelのマクロについて教えてください。 4 2022/05/31 14:07
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAマクロ実行時エラーの修正に...
-
エクセルVBA 配列からセルに「...
-
特定の色のついたセルを削除
-
EXCEL VBA 文中の書式ごと複写...
-
Excelで空白セル直前のセルデー...
-
【VBA】写真の貼り付けコードが...
-
C# DataGridViewで複数選択した...
-
HTMLのテーブルのセルの値をPHP...
-
VBA:日付を配列に入れ別セルに...
-
VBA にて、条件付き書式で背景...
-
Excel UserForm の表示位置
-
下記のマクロの説明(意味)を...
-
データグリッドビューの結合セ...
-
マクロ初心者です。 マクロで範...
-
【Excel VBA】一番右端セルまで...
-
VBA 複数条件の分岐処理の上手...
-
VB.netでのExcelデータの読み込み
-
EXCELのフォーム上でリアルタイ...
-
エクセルVBAで、セル内のテキス...
-
excelで結合セルの場合にエラー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAマクロ実行時エラーの修正に...
-
Excelで空白セル直前のセルデー...
-
エクセルVBA 配列からセルに「...
-
Excel UserForm の表示位置
-
【Excel VBA】一番右端セルまで...
-
エクセルの合計を自動で表示さ...
-
【VBA】【ユーザーフォーム_Lis...
-
EXCEL VBA 文中の書式ごと複写...
-
下記のマクロの説明(意味)を...
-
Excel VBAでCheckboxの名前を変...
-
【VBA】写真の貼り付けコードが...
-
特定の色のついたセルを削除
-
VBA:日付を配列に入れ別セルに...
-
VBA にて、条件付き書式で背景...
-
DataGridViewのフォーカス遷移...
-
関数の引数でrangeを指定したとき
-
入力規則のリスト選択
-
DataGridViewで指定したセルの...
-
VBAでユーザーフォームにセル値...
-
複数指定セルの可視セルのみを...
おすすめ情報
印刷用紙の関係上、範囲はこれ以上増えません。