ExcelVBA

2018年1月 7日 (日)

【ExcelVBA】シートの非表示を知るコード

 シートを非表示にできますが、更に、マクロ・コードで手操作で扱えないような非表示にもできます。 十分に共通認識できていない環境でマクロブックを活用・運用する場合には、誰でもが扱えないようシートを非表示にする必要があるかもしれません。 

①普通に、「sheet2」シートを非表示にするなら、
  Sheets("sheet2").Visible = xlHidden とか、
  Sheets("sheet2").Visible = False で、できます。

②表示する場合は、
  Sheets("sheet2").Visible = True 又は、
  Sheets("sheet2").Visible = xlSheetVisible とします。

③手操作で、再表示できないようにするには、
  Sheets("sheet2").Visible = xlVeryHidden とします。

続きを読む "【ExcelVBA】シートの非表示を知るコード"

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

2018年1月 2日 (火)

【ExcelVBA】条件付き書式の塗りつぶし色番号を知り、条件が合致した件数を取得?!

 カレンダー形式でスケジュール管理ブックをテストしていると、表示された1か月カレンダーの、その月の日数、出勤数、休日数が表示されるといいなぁと思い、早速どうやるのかを考えてみました。

■月の日数=月末日を知る
 その月の日数とは、月末の日を求めることなので、調べると、
        「「月末」の日付を求めるには、EOMONTH関数」がありましたので、
            https://kokodane.com/kan27.htm
 早速試してみます。

     B5セルに2018/1/1、B7セルに=EOMONTH(B5,1)→結果:2018/2/28

     で、=EOMONTH(B5,0) とすれば、当月の月末が求められます。

  2018/1/31 の日のみを表示させればよいので、=DAY(EOMONTH(B5,0)) で日のみの表示にすれば、その月の日数=月末日が求められます。
 (図)

Eomonth

続きを読む "【ExcelVBA】条件付き書式の塗りつぶし色番号を知り、条件が合致した件数を取得?!"

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

2018年1月 1日 (月)

【Excel】在庫表では、SUMIF関数を使うといいかも。

在庫表で何を知りたいのでしょう?

 現在庫数を知りたいというのは、言うまでもありませんが、意外とそれ以外の立場の違い等により、書式が決定される場合があるように思います。

 (1)いかに効率的に品目の動きを記録し、求める時に即座に在庫を知りたい。

 (2)現在庫と入出庫の傾向性を知り、品切れが起きないようにしたい。

 (3)少ない人数で、限られた品目を手っ取り早く管理したい。

 (4)取引数が多くて、品目の入出庫保管場所が複数である場合で、
    すべての品目在庫を知りたい。

    (4-1)倉庫ごとに、それぞれが管理台帳を保有・運用。

    (4-2)すべての倉庫で1つの管理台帳を保有・運用(サーバー/クラウド)

続きを読む "【Excel】在庫表では、SUMIF関数を使うといいかも。"

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

2017年12月30日 (土)

【ExcelVBA】図形(Shape)の作成・高さ変更・移動のVBAコード

 図形についてVBAで何かするというのは、なかなか出あいません。なので、ほとんどコードは覚えていないか、知りません。

 でも、Shape=図形で、テキストボックスやら、四角や丸などの図形、図(絵=picture)などを操作できることまでは覚えています。

 今回、あみだくじというか、あみだくじ経路移動表示のブックを更新する際に、四角図形の高さを徐々に低くしたいので、改めて図形についてのコードを整理・メモ・流用して、フラッシュを実現したいと思います。
  ここでの話:http://engi.cocolog-nifty.com/sirenai/2017/12/excel-247a.html

 マクロコード・VBAについては、WEB検索ですね。エクセルのVBAについての情報は多くありますので、非常に便利です。

 紙の例題集・VBAコード集などは、ざっくりとこんなことができるのを眺めるのに、便利です。ただ、これこれしたいなど行いたいことがまずある場合に検索するには、WEB検索をほとんどの場合利用しています。

続きを読む "【ExcelVBA】図形(Shape)の作成・高さ変更・移動のVBAコード"

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

2017年12月29日 (金)

Excelあみだくじ(あみだくじ経路表示) その2

  前回の話(思いついて、あみだくじ上を移動させてみた、の巻)
  http://engi.cocolog-nifty.com/sirenai/2016/08/excelvba-b72b.html

あみだくじというか、あみだくじの経路を自動で示すマクロブックを以前UPしました。
久々に、このブックを引っ張り出しました。
どうも、作業途中だったようです。
操作が洗練されていないというか、分かりにくい状態のままでした。

 前回は、あらかじめ用意したセルで構成されたあみだくじをたどっていくのを表示するまででした。あみだくじの模様は固定でしたので、エクセルでこんなことができるとか、このコードはどうなっているのかな、とかくらいにしか、メリットがなかったかと思います。

 そこで、今回は、あみだくじの模様パターンを変化させたい、あみだくじの模様は見せない~最後まで、結果が分からない~ように更新してみました。

続きを読む "Excelあみだくじ(あみだくじ経路表示) その2"

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

2017年12月25日 (月)

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

 前回に、100人分のスケジュールを表示・更新できるように変更し、メンバーを氏名・住所・フリガナで検索し易くするために、ユーザーフォームを追加しました。

 100人分のスケジュールを管理する上で、それぞれに異なるスケジュールのほかに、共通のスケジュールを設定する場合があります。 たとえば、休日など。そして、その休日は、カレンダー表上で、色を変えて表示したくなります。

 休日などの場合に、色を変更するのは、セルの背景色を変更すれば良いので、条件付き書式で対応できます。

 それぞれのメンバーの予定に、「休日」を代入するには、どうするか? を考えてみました。

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

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

2017年12月24日 (日)

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

 前回、100人のスケジュールを切り替えて、カレンダー形式に表示するようにし、また、スケジュール表を1か月カレンダー形式で表示する処理を関数式に変更したシートを追加してみました。

 会員なり、表示したいメンバーは、番号によって表示するようにしていますが、その番号が分からない場合、使いづらい面が出てきます。

 会員なり、メンバーが来た時に、番号が分からないと、名前とかで検索できて、本人確認できればと思い、氏名や住所で検索できるようにしてみた、というのが今回のメモです。

 題して、スケジュールを表示するメンバー検索機能を追加してみた、です。

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

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

2017年12月19日 (火)

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

 前回は、メンバー毎に予定を入力・表示させるように変更しました。ほぼ、これで良いかなぁと思い、他のPC(XL2010)で動作させたところ、カレンダーシートへの表示が非常に遅いことが分かりました。

 私のPCでは、マクロによるスケジュール表からカレンダー表への転記はタイムラグを感じない程度には、行われるのですが、そのPCでは、数秒かかってしまいます。

 CPUは同じほどか、私のPCの方が旧世代なので、遅いか同等で、HDDも同等で、エクセルのバージョンも同じ、違いと言えば、メモリーです。その遅いPCでは、外部ディスプレイを表示させていて、メインメモリーからグラフィックのメモリーがとられている状態です。残りのメモリーは2GB+α。

 唯一の違いが、使用できるメモリー量のようですので、最低4GBくらいのメモリーがないと、エクセルのマクロって、十分な速度が出ないかもと思いつつあります。 CPUは今となっては余り計算式を多用していなければ、関係ないかも・・・

 ということで、そのPCでも、表示がスムーズにできるような方策はないのか、考えてみました。

【今までの話】

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

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

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

2017年12月10日 (日)

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

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

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

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

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

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

2017年11月29日 (水)

EXCELで契約書管理 その5

前回の記事

EXCELで契約書管理 その1
  EXCELで契約書を管理するには? ちょっと考えてみた。
    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)

より以前の記事一覧