[[20140711154606]] 『特定のセルに選択したセルの値を表示したい』(ゆきPON) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『特定のセルに選択したセルの値を表示したい』(ゆきPON)

特定のセル(仮にA1)に他の複数のセルから選択した値(たとえばB2を選択した場合はB2の値が、G6を選択した場合はG6の値)が表示されるようにする方法はありますか。
A1に表示された値をコマンドボタンにて処理(バーコードコントロールで作成したバーコードを図形にする)して任意のセルに貼り付けるマクロを使用して処理をしたいのです。任意のセルはA2で指定できるようになっておりますが、実は選択したセルの1つ上(B2の場合はB1、G6の場合はG5)に貼り付けたいのでB2を
選択してコマンドボタンを押せば処理した値が自動的にB1へ貼り付けられるようにしたいのです。良い方法をご存知の方お願いします。

< 使用 Excel:Excel2010、使用 OS:Windows7 >


 >コマンドボタンを押せば処理した値が自動的にB1へ貼り付けられるようにしたいのです。

 どうも、実際の流れが分からないのですけど、
 そのコマンドボタンを押したとき、
 「選択したセルの値をA1セルに表示する」という仕事を
 先頭処理で実施すれば済む話ではないですか?

(半平太) 2014/07/11(金) 19:06


半平太様

質問の内容が抽象的すぎて申し訳ございませんでした。

実は、バーコード付きの商品台帳を作成しておりまして、A1(結合)に画像・B1(B2と結合)にバーコード・B3にバーコードテキスト ・C1(D1と結合)に商品名・C2に品番・D2に価格にした表を一商品分にして1ページに32商品が表示できるように雛形を作りました。

シート2に商品マスターをつくり、VLOOKUPでB3にバーコードテキストを入力して商品名・品番・価格を呼び出せるようにしました。

その際バーコードコントロールを使用して同時にバーコードも貼り付けられるようにしたのですが、印刷までに時間がかかりすぎてしまうため、作成したバーコードを図形として貼り付けられるようにコマンドボタンを作成しました。

その方法ですが、別のセル(下の"○○")にもう一度バーコードソースを入力してバーコードを作成し、貼り付けるセルを指定して(下の"△△"。この場合B3セルの真上のB1セル)貼り付けると言うやり方です。

’バーコード描画(クリップボード転送)
Bar.Draw CStr(Range("○○").Value)

'クローズ
Bar.Close

'バーコードの描画セル選択
Range(Range("△△").Value).Select

'バーコード画像描画(クリップボードから)
ActiveSheet.Paste

出来ればB3セルにバーコードソースを入力すると同時に別セルに反映させ、作成されたバーコードはわざわざ貼り付けるセルを指定ししなくてもB3セルの真上に表示させられる方法があれば助かります。

1対1ならできるのですが32対1の場合どうすればよいかわかりません。是非お力をお貸しください。

(ゆきPON) 2014/07/11(金) 20:32


 >別のセル(下の"○○")にもう一度バーコードソースを入力して

 「もう一度」という部分が分かりません。

 ○○の値は、B3セルやBxセルと同じ値ですよね?
 であれば、Bxセルを選択してから、くだんの実行ボタンをクリックすると言う方針に変えれば

 >Bar.Draw CStr(Range("○○").Value) を
  Bar.Draw CStr(ActiveCell.Value) に変更するだけでいいのではありませんか?

 それで、
 >Range(Range("△△").Value).Select  は
  アクティブセルの2つ上(と言っても結合しているらしいので)、1つ上へOFFSETすればいいんじゃないですか?
  つまり、
  ActiveCell.offset(-1).Select に変更するだけだと思えるのですけど。。。

 >出来ればB3セルにバーコードソースを入力すると同時に別セルに反映させ、
 >作成されたバーコードはわざわざ貼り付けるセルを指定ししなくても
 >B3セルの真上に表示させられる方法があれば助かります。

 これについては、上述の「実行ボタンをクリックする」と云うイベントを
 Worksheet_SelectionChange イベントに変更すると云うことになるのでしょうが、
 そのサンプルは、このサイトでもごろごろ転がっていますので、
 とりあえず検索してみてください。
 どのセルに入力があったかを判断して、適切に分岐するプロセスを入れなければならないので、
 システムの全貌を知っている人(つまり、ゆきPONさん)しか書けません。

(半平太) 2014/07/11(金) 22:31


 すみません。イベントを間違えました。 <(_ _)>

 選択されたセル情報だけでは、作動すべきかどうか判断できません。
 Bxセルにバーコードテキストが入力されたか否かの判断なので、

 (誤) Worksheet_SelectionChange 
  ↓
 (正)Worksheet_Change

(半平太) 2014/07/12(土) 08:00


半平太様

有難うございました。
お陰様で思い通りの作業ができるようになりました。

   >Bar.Draw CStr(Range("○○").Value) を

    Bar.Draw CStr(ActiveCell.Value) に変更するだけでいいのではありませんか?

   それで、
   >Range(Range("△△").Value).Select  は
    アクティブセルの2つ上(と言っても結合しているらしいので)、1つ上へOFFSETすればいいんじゃない    ですか?
    つまり、
    ActiveCell.offset(-1).Select に変更するだけだと思えるのですけど。。。

結局、上記のみ変更ですべて事足りました。難しく考えすぎていたようです。

本当にありがとうございました。

(ゆきPON) 2014/07/14(月) 11:24


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.