エクセルでデータ印を作成が必要なので、
色々と窓の杜とかで探してみました。
なぜかアドオンを入れたり複雑なものばかりでした。
フリーソフトとかで作るメリットもあまり感じませんでした。
探すのが面倒なので自分で作ってみました。
一番下がVBAのコードです。
エクセル2013で作りました。
このような場合はシンプルであるのがいいんです。
以下であればワンクリックで完結できます。
テキストボックスも画像もエクセルではオブジェクト扱いになります。
オブジェクトに名前を付けて文字列を代入しています。
やっぱり自分で作ったほうが早くて簡単でした。
自分で作ったんですから操作を忘れることもありません。
(でも古いものは自分でも使い方が分からないものはあります…)
慣れていればこれくらいは直ぐにマクロを組めますね。
変数を入れる場合にStringは文字列です。
Longの場合は数値の時に使います。
Variantで指定すればどんな変数でも入れることができます。
今回はオブジェクトへデータを入れていますが、
逆にオブジェクトからデータを引っ張ってくることもできます。
逆に以下のようにすれば変数xにオブジェクトへ入力されている文字や数字が代入されます。
TextBoxes("text1").Text=x
エクセルのマクロって答えは1つではないんです。
今回は変数を入れていますけど、
例えば以下でもVBAはしっかりと処理を実行してくれます。
ThisWorkbook.Worksheets("【データ印作成】").TextBoxes("text1").Text=Range("B11").Value
処理結果は全く同じです。
変数を使わなかったらプログラムのコードが多少短くなります。
ちなみにVBAというのはエクセルとは本来別のものです。
表計算ではできないことをやるわけですから、
エクセルとは切り離して考えるのが正しいんです。
Subデータ印作成()
'作成日:2015/10/10(土)
'文字列の変数を格納する。
DimxAsString
DimyAsString
DimzAsString
'指定セルの文字列を格納する。
x=Range("B11").Value
y=Range("B12").Value
z=Range("B13").Value
'変数が未入力の場合に終了させる。
Ifx=""ThenGoTor
Ify=""ThenGoTor
Ifz=""ThenGoTor
'オブジェクトに変数を代入する。
ThisWorkbook.Worksheets("【データ印作成】").TextBoxes("text1").Text=x
ThisWorkbook.Worksheets("【データ印作成】").TextBoxes("text2").Text=y
ThisWorkbook.Worksheets("【データ印作成】").TextBoxes("text3").Text=z
'指定範囲を画像として指定セルに返す。
Range("C1:E6").CopyPicture_
Appearance:=xlScreen,Format:=xlPicture
Worksheets("【データ印作成】").PasteRange("A1")
ExitSub
r:
MsgBox("※未入力のデータがあります。")
EndSub