Excelのワークシート1に1枚の部品カンバンを作成しました。
そのカンバン1枚のデザインはA1からD6までの範囲で作成。
A1のセルには 1036000102 という値が入っています。
A1セルの中にQRコードを配置し、QRコードはプロパティのLinkedCell欄をA1に設定しています。
D1セルにはシリアル№として 1 という値が入っています。
このカンバンをすぐ右に(2枚目はE1からH6、3枚目はI1からL6・・・となるように)120枚になるまでコピーしていきたいのですが、その際左上の 1036000102 という値を 1036000202 1036000302 というように3桁目を1づつ増やしたいです。最後は 1036012002 としたく。QRコードの
LinkedCellはE1、I1といった様にその値のセルになる様に。
又、D1のシリアル№も2、3、4、、、120となる様にVBAでどうにかなりませんか?
ご親切な方ご教示頂けないでしょうか?
よろしくお願い致します。
No.9ベストアンサー
- 回答日時:
A1:D6には添付図のように設定を行ってください。
以下のマクロで66~120を生成します。
Sub QRCode作成65_120()
Dim wcol As Long
Dim wrow As Long
Dim ws As Worksheet
Set ws = ActiveSheet
Dim i As Long
Dim wrg As String
Dim xObjOLE As OLEObject
Dim xObjOLEorg As OLEObject
Set xObjOLEorg = ws.OLEObjects(1)
Application.ScreenUpdating = False
For i = 66 To 120
wcol = (i - 65) * 4 + 1
wrow = 1
ws.Cells(1, wcol + 0).ColumnWidth = ws.Cells(1, 1).ColumnWidth
ws.Cells(1, wcol + 1).ColumnWidth = ws.Cells(1, 2).ColumnWidth
ws.Cells(1, wcol + 2).ColumnWidth = ws.Cells(1, 3).ColumnWidth
ws.Cells(1, wcol + 3).ColumnWidth = ws.Cells(1, 4).ColumnWidth
wrg = ws.Cells(1, wcol).Address(False, False)
ws.Range("A1:D6").Copy Destination:=ws.Range(wrg)
ws.Cells(1, wcol + 0).Value = ws.Cells(1, 1).Value + (i - 65) * 100
ws.Cells(1, wcol + 3).Value = i
Set xObjOLE = ws.OLEObjects.Add("BARCODE.BarCodeCtrl.1")
xObjOLE.Object.Style = 11
With xObjOLE
.LinkedCell = ws.Cells(1, wcol).Address(False, False)
.Height = xObjOLEorg.Height
.Width = xObjOLEorg.Width
.Top = xObjOLEorg.Top
.Left = ws.Cells(1, wcol + 0).Left + xObjOLEorg.Left
End With
Next
Application.ScreenUpdating = True
MsgBox ("完了")
End Sub
御回答ありがとうございます!
本日は残念ながら確認できません。
早くて明日の夜確認出来ると思いますので、またご連絡いたします。
ありがとうございます!
No.8
- 回答日時:
>今考えているのですが、頂いたコードで作成出来た64枚目を別のワークシートに貼り付けもう一度同じ作業を行えばとりあえずはやりたい事は出来るのかなと。
以下のようなことでしょうか。
現在、1~64までは、作成できることはわかっているので、
今回、現在のシートの1~64までを採用し、別のシートに
65~120を作ることは、可能かと思います。
65がA1:D6のセルになり、その右側に66を作ります。
そのようにして、120まで作ります。
A1:D6のセルは、あなたの責任でQRコードと文字を設定します。
マクロで、65~120の分を作成します。
上記で良ければ、マクロの提供は可能です。
>やはりそのbookを見て頂かないとわからないですかね。
こちらで、エラーが再現できないと対処のしようがないです。
ちなみに、「実行時エラー1004 アプリケーション定義またはオブジェクト定義のエラー」となったとき、ほかにエラー番号のようなものは出力されませんでしたか。また、マクロのどの行で止まったかは、わかりますでしょうか。
上記のエラー番号等を手掛かりに、ネットを検索すると、もしかしたら、対処の方法がわかるかもしれません。
(わからない可能性が高いですが・・・)
ありがとうございます!
実行時エラー1004 アプリケーション定義またはオブジェクト定義のエラー
意外には何も出ておらず、シートは64枚目まで完了しそれ以上でも以下でもありません。
どの行か、と言うのは判りません、すいません。
おっしゃる通りで、別シートで65〜120まで作れるのかなと思います。
もしよろしければ上記の内容でご教示頂けないでしょうか。
No.7
- 回答日時:
No6の追伸です。
ファイルをアップする際、
①QRコードが1個のシート(マクロ実行前のシート)
②マクロを実行してエラーになったシート
の2シートを載せてください。
特に①は必須になります。
申し訳ございません。
会社からデータ持ち出せませんでした、、、。
今考えているのですが、頂いたコードで作成出来た64枚目を別のワークシートに貼り付けもう一度同じ作業を行えばとりあえずはやりたい事は出来るのかなと。
すっきりしないですが、長々とお付き合い頂いている上、会社データを提示出来ない申し訳なさとで。
会社OSはwindows10 バージョン20H2
Microsoft Office Professional Plus 2016 32ビット
です。
やはりそのbookを見て頂かないとわからないですかね。
お付き合い頂けるのであれば、何とか最後まで行きたいのですが、、、。
No.6
- 回答日時:
For i = 65 To 120がだめだった場合です。
ファイルのアップロードはOKと理解しました。
以下の手順で行ってください。
1.下記の無料のオンラインストレージサイトで行ってください。
(会員登録をしなくてもアップ可能です)
https://firestorage.jp/
2.上記のサイトに、excelをアップしてください。
3.アップする前にexcelファイルの個人情報をすべて削除してください。
添付図のように、excelファイルを選択し、右クリックし、「プロパティ」を選択します。
プロパティの画面が表示されるので、「詳細」タブをクリックすると、「プロパティや個人情報を削除」
のガイドが表示されるので(赤線で囲んだところ)、それをクリックします。
あとは、表示されるメッセージに従って削除してください。
4.こちらのサンプルを上記のサイトアップしました。
パスワード:goo
7日間保存されます。
https://firestorage.jp/download/e206176916e3092e …
にアップしてあります。ダウンロードしてみてください。
おはようございます。
For i = 65 To 120 でダメでした。
実行時エラー1004
アプリケーション定義またはオブジェクト定義のエラーとなってしまいました。
アップロードの件ですが、会社からこのファイルを持ちだせるかなぁと思っていたのですが、厳しいかもです。
なんとか持ち出せる様努力してみます。
速報までに。
No.5
- 回答日時:
>家のPCはwindows8.1 excelは2013home and business 64ビットです。
>このバージョンではQRは作成出来ないんですかね、、、。
excel2016以上でないとQRコードは作成できません。あきらめてください。
>明日For i = 65 To 120 を入れてみて確認してます。
これで、OKなら問題ないですが、ダメだった場合の対策です。
このエラーをこちらでは、再現できないので、こちらではそれ以上はできません。したがって、以下の案は可能ですか。
案:
エラーが発生する、そのブックをどこかの公開されているサイトにアップする。(当然、会社情報がある場合は適度に○○などの伏字にします)
そのブックを私がダウンロードし、こちらで動作確認する。
ありがとうございます!
本来であれば今すぐにでもbookごと見てもらいたいのですが
そのアップするっていうやり方がまずわからないです。。。
でもひとまずFor i = 65 To 120を試してみます!
ご親切にありがとうございます!
No.4
- 回答日時:
本件のエラーは、環境の違いによる可能性が高いです。
1.もし、実行されたのが家のPCでなら、会社のPCで実行して、その結果をお知らせください。(投稿時間をみると自宅から投稿したように思われます)。実行したのが、会社のPCなら、この回答は無視して項番2へ進んでください。
2.64枚までできているということは、IS1のセルに正しくQRコードが設定されていると理解しました。
もし、IW1のセルにQRコードの残骸があるならそれをまず削除してください。削除したのち、
マクロの
For i = 2 To 120
を
For i = 65 To 120
に変えてください。
そうすれば、65枚目から作り直します。
なお、65枚目の残骸がのこった状態でじっこうすると、2つQRコードが
つくられるので、かならず、残骸を削除してから実行してください。
3.参考までに、実行したPCの環境を教えていただけませんでしょうか。
ちなみに、こちらの環境ですが、
①OSはWindows10 Pro. 64ビット版
②ExcelはOfiice Home and Business 2019の 32ビット版
です。
ありがとうございます!
実行したのは会社のPCです。
家のPCで実行したいのですが、古すぎるのかQRコードが作成できません。
家のPCはwindows8.1 excelは2013home and business 64ビットです。
このバージョンではQRは作成出来ないんですかね、、、。
家で動作確認出来たら良いのですが。
実行しました会社PCのバージョンは明日確認致します。
IW1にはQRは無かった様に思います、明日For i = 65 To 120 を入れてみて確認してます。
No.3
- 回答日時:
以下のマクロを標準モジュールに登録してください。
表示されているシートが実行対象になります。
一発勝負なので、実行前に当該シートのバックアップをとってから行ってください。(もしくは当該ブックのバックアップ)
Option Explicit
Sub QRCode作成120()
Dim wcol As Long
Dim wrow As Long
Dim ws As Worksheet
Set ws = ActiveSheet
Dim i As Long
Dim wrg As String
Dim xObjOLE As OLEObject
Dim xObjOLEorg As OLEObject
Set xObjOLEorg = ws.OLEObjects(1)
Application.ScreenUpdating = False
For i = 2 To 120
wcol = (i - 1) * 4 + 1
wrow = 1
ws.Cells(1, wcol + 0).ColumnWidth = ws.Cells(1, 1).ColumnWidth
ws.Cells(1, wcol + 1).ColumnWidth = ws.Cells(1, 2).ColumnWidth
ws.Cells(1, wcol + 2).ColumnWidth = ws.Cells(1, 3).ColumnWidth
ws.Cells(1, wcol + 3).ColumnWidth = ws.Cells(1, 4).ColumnWidth
wrg = ws.Cells(1, wcol).Address(False, False)
ws.Range("A1:D6").Copy Destination:=ws.Range(wrg)
ws.Cells(1, wcol + 0).Value = ws.Cells(1, 1).Value + (i - 1) * 100
ws.Cells(1, wcol + 3).Value = i
Set xObjOLE = ws.OLEObjects.Add("BARCODE.BarCodeCtrl.1")
xObjOLE.Object.Style = 11
With xObjOLE
.LinkedCell = ws.Cells(1, wcol).Address(False, False)
.Height = xObjOLEorg.Height
.Width = xObjOLEorg.Width
.Top = xObjOLEorg.Top
.Left = ws.Cells(1, wcol + 0).Left + xObjOLEorg.Left
End With
Next
Application.ScreenUpdating = True
MsgBox ("完了")
End Sub
ご回答ありがとうございます!
今すぐ実行したいのですが、別件で少し忙しくしておりまして。
今週中にトライし、結果報告致します!!
ありがとうございます!
No.1
- 回答日時:
補足要求です。
①A1のセルにQRコードを配置すると、その値(1036000102)がA1にありますが、
その1036000102の値は、QRコードと一緒にみえるようにしておく必要があるかと思います。
その為には、そのA1のセルの縦位置の配置を上詰めにしておく必要がありますが、あなたのもそのようになっていますか。それとも、それ以外の方法で、文字も見えるようにしているのでしょうか。その場合は、その方法も補足してください。
セルの縦位置の配置の上詰めについては添付図の赤線で囲んだボタンをクリックします。
②B,C,D列についても、セルの配置を変えていますか。それとも、そのままですか。
③A列の幅は、大きくなっているので、あなたが作成した、A,B,C,D列の幅を基準にして、それを
ほかの列(E,F,G,H列 I,J,K,L列・・・)にも適用します。それでよろしいでしょうか。
④「カンバン1枚のデザインはA1からD6までの範囲で作成」ということですが、
2行目から6行目については、マクロでは関知しませんが、それでよいでしょうか。
A2~RL6のセルはあなたが、設定する箇所で、マクロでは何の設定もしないという意味です。
⑤念のため、祖語のないようにするために、A1~D6のセルの画像を提示していただけませんでしょうか。
画像が、アクセサリのSnipping Toolを使用すると簡単に画面から切り取りができます。
添付の画像もSnipping Toolを使用しています。
ご回答ありがとうございます!
①A1のセルの数値はセル内の下に配置しています。そこでQRコードは
大きさを調整し、QRコードの下に数値が見える様になっています。
②B1とC1は結合しています。D1は中段、右寄せです。
③幅はA1からD6までに作ったままでコピーしていきたいです。
④一度やってみないとわからないですが、このA1からD6までを一通りコピーした後に、VBAでA1とD1の数値を操作すれば良いのかなと思います。
⑤すいません。データが持ち出せなくお見せする事ができません。
写メを明日撮ってきます。
こんな補足で大丈夫でしょうか?
ほかにも必要な情報がございましたら、なんなりとお申し付け下さい。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) マクロで変数を用いてセルを選択し、そのセル内の数値を計算式に入れる方法 3 2021/12/27 22:59
- Excel(エクセル) シート参照を含む数式を連続コピー 3 2022/12/10 11:42
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Excel(エクセル) エクセルで、 A1セルに「A」という値、 B1セルに「B」という値が入っています。 どちらも表示形式 5 2023/02/22 23:05
- Visual Basic(VBA) オートフィルタの結果をコピーして、別ブックに値で貼り付けたい 1 2021/11/08 21:24
- Excel(エクセル) Excleマクロ セル値の代入と文字列の結合について 3 2022/10/05 16:47
- Excel(エクセル) 可視セルだけコピーしたい ※条件付き書式で非表示 2 2021/11/01 12:01
- Excel(エクセル) 同じExcelのBOOK内で 1枚目のシートのA1のセルにデータを 入れると2枚目のシートのC1のセ 1 2022/10/25 09:40
- Excel(エクセル) エクセルの関数式を教えてください。 2 2022/11/29 21:09
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 1 2023/02/27 22:21
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・【選手権お題その3】この画像で一言【大喜利】
- ・【お題】逆襲の桃太郎
- ・自分独自の健康法はある?
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・ちょっと先の未来クイズ第6問
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelのプルダウンで2列分の情...
-
【Excel VBA】セルの色によって...
-
Google Apps Script:Googleスプ...
-
Excelで指定した日付から過去の...
-
VBAでセルをクリックする回...
-
クリックされたセルの位置を取...
-
エクセルVBAで、非表示にし...
-
セルに抜けた番号の代わりに空...
-
【EXCEL VBA】Range("A:A").Fi...
-
Excel VBA マクロ ある列の最終...
-
ExcelVBAを使って、値...
-
VBからEXCELのセルの値を取得す...
-
特定のセルが空白だったら、そ...
-
ExcelVBA データを消去すると罫...
-
【Excel VBA】指定行以降をクリ...
-
Excel2003 複数セル1列の入力済...
-
DataGridViewで列、行、セルの選択
-
”戻り値”が変化したときに、マ...
-
【Excel】指定したセルの名前で...
-
特定の文字を条件に行挿入とそ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelVBAを使って、値...
-
Excelで指定した日付から過去の...
-
i=cells(Rows.Count, 1)とi=cel...
-
【Excel VBA】指定行以降をクリ...
-
特定のセルが空白だったら、そ...
-
VBA実行後に元のセルに戻りたい
-
”戻り値”が変化したときに、マ...
-
Excelのプルダウンで2列分の情...
-
連続する複数のセル値がすべて0...
-
vba 隣のセルに値がある行だけ...
-
エクセルvbaで、別シートの最下...
-
Excel vbaで特定の文字以外が入...
-
EXCELのVBA-フィルタ抽出後の...
-
特定の文字を条件に行挿入とそ...
-
【EXCEL VBA】Range("A:A").Fi...
-
【VBA】シート上の複数のチェッ...
-
DataGridViewの各セル幅を自由...
-
VBAでセル同士を比較して色付け
-
【VBA】指定したセルと同じ値で...
-
セル色なしの行一括削除
おすすめ情報
御回答ありがとうございます!
写真の感じであっています。
実際のものは今撮れないので簡単に作成しました。
QRと文字で書いてある部分は本当はQRコードです。
よろしくお願いします!
おはようございます。
今頂きましたマクロを実行したのですが、カンバンが64枚まで作られたところで
アプリケーション定義またはオブジェクト定義のエラーです
となってしまいました。
頂いたままコピーしたので誤字等は無いと思うのですが。
ありがとうございました!
65〜120まではエラーになる事なく出来ました。
長々とありがとうございました!
本当に感謝致します。