ExcelVBA

2017年7月15日 (土)

指定ブックを開いて、Openしたブック内のマクロを実行する。

マクロはそのブックがアクティブであるのが前提です。
 他のブックから開いたブックに保存されているマクロを実行することは 余りありません。
 ただ、メニューブック(他のブックをOpenするボタンを主に設定しているブック)で、他のブックを開くようにしたい場合、作り方はメニューブックを作り、ボタンクリックで指定のブックが開くことを確認します。続いて、指定するブックの作り込みをします。

 そのブックを開くと同時に、何か処理を行う事がある場合、単独ブックでOpenしてみて、実行結果を確認したりします。

ブックごとに、作成・動作確認をしていくのですが、メニューブックで開いたり、指定ブックに値をコピーしたりしたい場合がありますが、その場合はメニューブックに、コードを書けば良いので、特に問題はありません。

 ただ、Openと同時に、処理をしたい場合、メニューブック側でチェック・動作するのが面倒な場合が多いです。単に、Openした時に行う処理は別の処理とのつながる場合があるので、処理のつながり可能性から言えば、そのブック自身にOpenしたときの処理からすべて、自らのブックにてマクロを持ちたいと思っています。

続きを読む "指定ブックを開いて、Openしたブック内のマクロを実行する。"

| | コメント (0) | トラックバック (0)

2017年6月28日 (水)

エクセルで印字:宅配便伝票を印字の例 その2

 指定帳票の特定の位置に、エクセルで印字する場合の例。その2

 <前回>
http://engi.cocolog-nifty.com/sirenai/2017/06/post-7289.html

 印刷された用紙に記入するというのは、意外と無いようで、結構多くあるように感じる。なので、十数年前にさかんだったドットプリンターでの伝票発行のようなことも、限られた業務では生き残っている。特に、自治体向け・行政手続き向けなどの記入用紙が決められている場合、使用者側ではいかんともしがたい、ということで、エクセルからドットプリンターで印刷するということが発生している。

 さて、前回の続き。
前回では、指定帳票の特定位置に印字するのに、テキストボックスを利用し、マクロで印刷時にテキストボックスの枠線を消すということを行っていた。セルで印字位置を特定するよりも、テキストボックスの方が位置決めしやすく、効率的かなぁと思う。

 ただ、入力し印刷して終わりではなく、おそらく次の段階として、いちいち宛先を入力するのではなく、決められた宛先が多いから、選択するようにして、入力を減らして欲しい・減らしたいなどの欲が出ると思われるので、その対策について、考えてみた。

続きを読む "エクセルで印字:宅配便伝票を印字の例 その2"

| | コメント (0) | トラックバック (0)

2017年6月 6日 (火)

エクセルで印字:宅配便伝票を印字の例

 前回、「エクセルで指定用紙に印字する」の続き。
 http://engi.cocolog-nifty.com/sirenai/2017/05/post-9c7b.html

 試しに、宅配便の伝票をエクセルで印刷できるよう、試してみます。
実際の印刷は行っていませんので、うまく枠内に印字されるかどうかは不明です。

 ヤマト宅急便と佐川急便の伝票イメージがネットにありましたので、位置イメージとして図挿入しています。

続きを読む "エクセルで印字:宅配便伝票を印字の例"

| | コメント (0) | トラックバック (0)

2017年5月10日 (水)

選択した行のデータをコピー&ペーストするコード

 エクセルでは、基本データはリスト形式で蓄積します。
1行=1レコード、1つ分のデータの集り。

リスト形式で、データを抽出するためには、フィルターが便利です。
VBAコードでも、find()ではなく、フィルターで抽出するのが何かと便利です。

ただ、抽出で曖昧な条件な場合、フィルター後の可視データから、目視で行データを選択したい場合がマレですが、あります。

その場合の抽出するためのコードです。

ご参考までに。

続きを読む "選択した行のデータをコピー&ペーストするコード"

| | コメント (0) | トラックバック (0)

2017年5月 7日 (日)

エクセルで指定用紙に印字する その3:作ってみた編2

実際に作成したブックです。

こんな感じにしてみました。
図1

Inji_sheet



続きを読む "エクセルで指定用紙に印字する その3:作ってみた編2"

| | コメント (0) | トラックバック (0)

2017年5月 5日 (金)

エクセルで指定用紙に印字する その2:作ってみた編

前回は能書きを書きましたが、今回は実際に作成した過程でのポイントを
メモしておきます。

今回は、テキストボックスを複数作成し、それぞれを配置していく方式です。

オブジェクトが多くなるので、「オブジェクトの選択」アイコンは必須です。

-オブジェクトの選択-
 クイックアクセスツールバーのユーザー設定
 すべてのコマンド
 「オ」から始まるコマンドを見るとあります。

続きを読む "エクセルで指定用紙に印字する その2:作ってみた編"

| | コメント (0) | トラックバック (0)

エクセルで指定用紙に印字する

 エクセルで、指定の用紙の指定位置に文字入力して印刷する。
 ~マクロで位置指定印刷するのメモ~


 今更ながら、ドットプリンターで指定用紙に印字する羽目になったので、
少し考えてみた。 その記録、手順。
【指定位置印字の2つの方法】

[1]セル方眼紙で、印刷した部分をセル(結合セル)で作る。

[2]印刷したい部分をテキストボックスを配置して作る。
どちらの方法で行うにしろ、考え方は、
 エクセルに画像を取り込む。印刷する用紙と同じ大きさにする。
 その画像は印刷はしないが、印字する値を配置する目印とする。
[1] セル方眼紙方式
 印刷する画像をちょっと「背景」にして、位置合わせすると、
やり易いように想像するが、背景となる画像が印刷サイズに合っていないと、
背景のままではサイズ調整できないので、背景にする前に大きさを
調整しておく必要がある。これが結構面倒。というか、事前に指定の
大きさを決めて、エクセル上に背景として表示させる方法がよくわからない。
[2] テキストボックス配置方式
 エクセル上で、同じ大きさの用紙として取り込むのが難しいが、
オブジェクトとしてシート上に配置するので、サイズ調整しやすい。
 また、入力項目はテキストボックスなので、配置が決めやすい。

続きを読む "エクセルで指定用紙に印字する"

| | コメント (0) | トラックバック (0)

2017年5月 1日 (月)

エクセル2010でバーコードを作成する <その3>

前回のエクセルでバーコード作成の記事

 ※Accessのバーコードコントロールを使わなくても、エクセルだけで
  バーコードが作成できる。

  (1)エクセル(2010)でバーコードを作成する
  http://engi.cocolog-nifty.com/sirenai/2014/05/2010-c8e3.html
  VBAでバーコードを作成。

  (2)エクセル(2010)でバーコードを作成する <その2>
  http://engi.cocolog-nifty.com/sirenai/2014/05/2010-5d24.html
  ActiveXコントロールで作成する。

今回は、(1)のバーコード用ブックの修正行いました。

 前回作成時に、エクセルのバージョンにより、バーコード画像の高さが異なって

作成されたことから、エクセルのバージョンごとに、高さを変更するように

していましたが、今回それで想定しない高さになって、バーコード画像が作成

されるようなお話を聞きましたので、再度コードを見てみました。

続きを読む "エクセル2010でバーコードを作成する <その3>"

| | コメント (0) | トラックバック (0)

2017年3月29日 (水)

【EXCEL VBA】シート上のある一部分のみを見せたい。

 EXCEL図書管理Ver2.10xでは、MENUシートという各処理ボタンが配置され、処理後には必ず戻るシートがあります。このMENUシートの絵柄を変えることができるようにもしています。その場合に、絵柄をサンプル的に見ることができるようにしていますが、その絵柄=画像を貼り付けたのは、他の規定値も配置しているシートなので、その絵柄がある部分のみを見せたいと思い、下記のようなコードとしていました。

Application.Goto Sheets("table").Range("t161"), True
ActiveWindow.FreezePanes = True
まず、GotoでtableシートのT161セルにカーソルを飛ばし、T161セルが画面の左上隅になるようにします。次に、アクティブになっているはずのT161セルで画面固定するという文です。
しかし、これでは、画面固定が画面中央のセル部分で行われてしまいます。EXCEL2010。
原因不明。

 goto文の前に、ActiveWindow.FreezePanes = false を入れても変わらず。

続きを読む "【EXCEL VBA】シート上のある一部分のみを見せたい。"

| | コメント (0) | トラックバック (0)

2017年3月25日 (土)

[VBA] Msgboxでエラー13

 処理の開始や終了、処理選択を聞く場合などで、ユーザーにメッセージを伝えるために、MSGBOX()は結構多用しています。
 なにも考えずに使用してきたので、エラーがでたのに、驚いた次第です。

例:セル内容をmsgboxで表示させる処理。
   msgbox range("a1").value

     A1セルが、エラーだとmsgboxはエラー13でストップします。
  エラー値はそれを受け取ることができないという事らしいです。

  なので、この場合、A1セルの関数式の外側に、iferror()でネストしてやれば、良いようです。


  

続きを読む "[VBA] Msgboxでエラー13"

| | コメント (0) | トラックバック (0)

より以前の記事一覧