ExcelVBA

2017年12月10日 (日)

ExcelVBA:目次シートを追加するマクロ

 私の周辺では、社内申請書やガイド、報告書類などは、エクセルで作成されています。

 最初は、1つの申請書類を1ブックで作成するも、エクスプローラーでのブック選択が面倒なのか、エクセルのシートを使うと便利だと思いますので、1ブック内に複数の申請書類のシートを作成したりします。これはこれで便利なのですが、1画面でシート名が表示しきれなくなることも多々あります。シート名を長くした場合は特に。

 そうした多シートのブックに、目次シートを追加するマクロブックを考えてみました。
目次シートとは、menuという名の新規シートを追加し、このシートに、各シート名とそのシートへのリンクを設定したシートのことを言っています。

続きを読む "ExcelVBA:目次シートを追加するマクロ"

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

2017年11月29日 (水)

EXCELで契約書管理 その5

前回の記事

EXCELで契約書管理 その1
    http://engi.cocolog-nifty.com/sirenai/2016/04/excel-e9d5.html

EXCELで契約書管理 その2
    http://engi.cocolog-nifty.com/sirenai/2016/04/excel-3629.html

EXCELで契約書管理 その3
    http://engi.cocolog-nifty.com/sirenai/2016/04/excel-251e.html

EXCELで契約書管理 その4
    http://engi.cocolog-nifty.com/sirenai/2017/01/excel-eeee.html

 特に問題もなく、運用してましたが、ある時に、新規登録で、既にデータが登録されている行に書き込まれることがありました。 対応として、新規登録時に、登録行に値がある場合は、処理を中断する処理を入れました。 今回、その原因が分かりましたので、メモしておきます。

 ちなみに、最終行は、
  i = Sheets("契約書").Cells(Rows.Count, 1).End(xlUp).Row
    Range("b3") = i + 1
で、求めています。

続きを読む "EXCELで契約書管理 その5"

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

カレンダー形式でスケジュール管理 (EXCEL2010-VBA) その3

カレンダー形式でスケジュール管理、その3回目。

今回は、複数人のスケジュールを切り替え・表示できるようにするには?を
考えてみたいと思います。

いわば、
カレンダー形式で、100人のスケジュール管理を、というところでしょうか。


前回の記事。
2016年8月15日 (月)    カレンダー形式でスケジュール管理 (EXCEL2010-VBA) 
    http://engi.cocolog-nifty.com/sirenai/2016/08/excel2010-vba-f.html                        

2016年8月21日 (日)    カレンダー形式でスケジュール管理 (EXCEL2010-VBA) その2
    http://engi.cocolog-nifty.com/sirenai/2016/08/excel2010-vba-8.html      

少し、時間が空いたので、処理フローを思い出してみます。
スケジュールシートに、縦方向:年月日、その横列に、予定1と予定2がある表を作成し、カレンダーシート(1か月表)の年月日と、スケジュールシートの年月日が一致すれば、スケジュールシートの予定1をその年月日セルの直下セルに代入し、予定2をそのセルのコメント欄に代入するのが、メインのコードです。このプロシージャをボタンクリックで実行させるというものだったかと思います。

一人分のスケジュールをカレンダー形式で表示させていたのですが、予定1、予定2の列を変更できれば、複数人のスケジュールを表示させるのは、それほど難しくないようです。そんな予想のもと、試しに、やってみました。その記録メモです。

続きを読む "カレンダー形式でスケジュール管理 (EXCEL2010-VBA) その3"

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

2017年10月 4日 (水)

「Office 2016 バージョン 1708 以降で日本語の VBA モジュール名を含むファイルを開くとエラー」

 少し古い話題かも・・・・

「今回の記事では、Office 2016 クイック実行形式 (C2R) 向けのバージョン 1708 の更新によって、日本語のモジュール名やフォーム名を持つ Office ファイルを開くときにエラーが発生する動作について記載します。・・・・・・・・・・・」とのこと。下記URLより、引用。

https://blogs.msdn.microsoft.com/office_client_development_support_blog/2017/08/23/ver1708-issue-japanesenamevbamodule/

 こちらにも、こんな記事が・・・

山市良のうぃんどうず日記(107):最新Office 365でマクロ/VBAの問題が発生――「Semi-Annual Channel(半期チャネル)」で助かったという話 (1/2)


http://www.atmarkit.co.jp/ait/articles/1710/04/news015.html

続きを読む "「Office 2016 バージョン 1708 以降で日本語の VBA モジュール名を含むファイルを開くとエラー」"

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

2017年9月18日 (月)

[VBA]ブックをオープンするコード

ブックをファイル選択フォームから、選択してオープンするコード。
ただし、既に同名ブックが開いていたら、そのブックをアクティブにする。

続きを読む "[VBA]ブックをオープンするコード"

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

2017年8月20日 (日)

指定ブックを連続してアクティブorオープンする。

他のブックの指定シートをアクティブにし、読出し元ブックへのリンクを設置する。http://engi.cocolog-nifty.com/sirenai/2017/08/post-ed80.html
 の続きです。

 前回では、読出し元ブックから、あらかじめ入力しておいたブック・シートを順番にアクティブ又は、オープンにし、処理後に、読出し元ブックをアクティブにするには?ということで、サンプルコードを掲載しました。

 あるブックをアクティブにし、処理後(入力など)に、元のブックをアクティブにし、次のブックをアクティブにするためのVBAコードでした。これでは、いちいち作業後元ブックにもどり、ボタンクリックで、次のブックをアクティブにします。これはこれで良いのですが、元ブックに戻るまでもなく、次の読出しブックがアクティブになった方が良いこともあります。

続きを読む "指定ブックを連続してアクティブorオープンする。"

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

2017年8月19日 (土)

他のブックの指定シートをアクティブにし、読出し元ブックへのリンクを設置する。

 他のブックの指定シートをアクティブにし、また、元の呼び出し元ブックに戻れるようにしたい。 ということで、試してみた。

 他のブックの指定シートをアクティブにするのは、activateでできるから、特に問題はありません。 アクティブにしたブックから、元に戻るには、どうしたら? ということです。

 最初から、開く対象ブックに、読み出し元のブックへのマクロかリンクを設定しておくという事が考えられますが、いろいろなパターンから、対象ブックを開くことも考えたいし、いちいちリンクを入力・設定しておくのも、面倒なので、別の方法を考えてみます。

 開いてから、マクロで、読み出し元ブックへのリンクを設定すれば、なんだか実現できそうです。

続きを読む "他のブックの指定シートをアクティブにし、読出し元ブックへのリンクを設置する。"

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

2017年8月 2日 (水)

単票印字~宛先グループを変える、又はコンボボックスの表示元を変える

 指定用紙への印字の続き~エクセルを使って、あらかじめ印刷されている帳票(例:宅配便)に、値を印刷しようという話の続き。
 前回: http://engi.cocolog-nifty.com/sirenai/2017/06/post-7aa6.html

 宛先をコンボボックスで表示・選択し、入力部に転記させていましたが、別の宛先グループを表示させると、宛先選択がしやすいと思います。

 例えば、社内部署のグループ、取引先グループに分けるとか、更に取引先グループを数個に分けるとか。

 今回は、2つの宛先グループを作成し、ボタンで宛先を切り替えできるよう、考えてみます。


続きを読む "単票印字~宛先グループを変える、又はコンボボックスの表示元を変える"

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

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)

より以前の記事一覧