タグ別アーカイブ: VBA

お仕事の依頼

 実務を担う現場の方が使い慣れたエクセル。Excellent仕事術は、このエクセルを効果的に活用して、御社の業務改善やお困りごと解決の最適なスキームをご提案/ご提供します!

御社にこんな悩みはございませんでしょうか?

エクセル作業がブラックボックス化しており、膨大な人手がかかっている

分析資料は沢山あるが、業績改善に向けた課題や傾向が全く把握できない

プレゼン資料にどこかインパクトが無い

 Excellent仕事術では、これらの悩みに対して「現場重視」で現場の声を反映させながら解決策を提案します!

 ご相談自体は無料でうけたまわります。エクセルに関することであれば、どんなことでも幅広く「Excellent仕事術のガッツ鶴岡」へご相談ください!

プロトタイプ(試用版)の開発についても低価格で請負ます!

お問合先

Excellent仕事術の得意分野

VBA/マクロ開発

エクセル作業がブラックボックス化する理由は、大きく分けて3つあります。

エクセルシートのスパゲティ化

データのバケツリレー

エクセルファイルの共有

 Excellent仕事術では従来のIT部門では対応できなかったこの3つの問題を、これまで培ってきたマクロ/VBA開発力で解決します。

エクセルシートのスパゲティ化

 エクセルシートのスパゲティ化は、1シートに「データ」「計算」「作業スペース」を詰め込むことで起こります。

 異なる内容が詰め込まれている為、「どこの範囲がどの内容」で、「どの範囲とどの範囲がどのように絡み合っているのか?」が第3者に分かりにくくなります。

 スパゲティ化したエクセルシートは、作成した担当者しか扱えないだけでなく、データが不規則に蓄積されているため有効活用ができず効率化が行えません。

 スパゲティ化したエクセルシートを改善するポイントは、「データ」「計算」「作業スペース」を1シートに混ぜず、それぞれシート毎に集約することです。

 Excellent仕事術ではスパゲティ化したエクセルシートを、3つのステップで劇的に改善します。

・Firstステップ

   ➡ ヒアリング及びシートの中味の分析

・Secondステップ

   ➡ シートを「データ」「計算」「作業スペース」などの目的別に作成

・Thirdステップ

   ➡ 作業スペース・シートでの作業をVBAにより自動化

 改善したエクセルシートでの作業は効率化されているだけでなく、特定の担当者以外でも引継ぎの負担なく作業が行えるようになります。

データのバケツリレー

 エクセルファイルでデータを外部の会社や他部署とやり取りすることは、良く行われていると思います。

 データ活用の目的が外部の会社や他部署と違う為、「エクセルファイルの交換」はファイルやシート間での膨大な「データの転記処理」を発生させることになります。

 実は、VBA/マクロを活用すれば複数のファイルやシートの「データ取込み・変換処理」 を、一括で行うことができます。

一括処理のイメージ

 一括で「データ取込み・変換処理」が行えれば、膨大な転記処理から解放されるだけでなく、取り込んだデータを活用して「周辺業務」の効率化も行えるようになります。

 Excellent仕事術では、現場の声をお聞きして「データ取込み・変換処理」から「周辺業務の改善」まで徹底的にサポート致します。

エクセルの共有

 エクセル1ファイルで大量のデータを扱う場合によく出てくる問題として「共有」の問題があります。

 エクセルは表計算ソフトであり、本来は大量のデータを扱うには不向きです。1シートに蓄積できる行数に制限があり、蓄積データが大量だと動きが重たくなります。

 しかも、 1ファイルを複数の担当者で同時に共有して使用できない為、担当者に待ち時間が発生してしまい、どうしても業務効率が上がらなくなります。

 Microsoft社の製品では、データベースソフトとして「Access」があります。Accessであれば、行数に関係なく大量のデータを扱うことができ、複数の担当者で共有して使うことも可能です。

 ところが、Accessだと現場では行えない業務も中にはあります。特に「大きなクロス表での作業」などは、エクセルのような表計算ソフトを業務用にカスタマイズした表でないと効率があがりません。

 こういったエクセルでないと行えない業務を、複数担当者でエクセルファイルを共有しながら作業したい場合には抜け道があります。

エクセルとAccessをVBA技術により連携して使うという方法です。

 この方法であればエクセルとAccess、互いのメリットを組み合わせて業務を行うことが可能です。

 このエクセルとAccessn連携する仕組みでは、データはAccessに一元管理し、エクセルには都度、必要なデータだけ呼び出して活用します。

 このエクセルとAccessの連携を行う場合にポイントとなるのは「エクセルの役割」と「Accessの役割」の切り分けです。

 Excellent仕事術では、連携の仕組みを構築するだけでなく、業務を理解させて頂いた上で「連携のポイント」についても提案させて頂きます。

事例①

データ分析/統計処理

「数値/分析資料は沢山あるが、業績改善に向けた課題や傾向が全く把握できない」ことの主な原因は、鳥の目全体像を捉えることができていないことが考えられます。

 例えば「前期と比べて注文単価が何故下がったか?」について、注文単価自体の推移を見ても、単位荒すぎて「何故下がった」かはよく分からないはずです。

 逆に注文台帳を見ても、今度は単位細かすぎて「注文単価が前期と比べて何故下がったか?」はよく分からないはずです。

 では下に記述したように、注文を単価別にグループ分けして件数の推移を確認した場合はどうでしょう?

・低単価の注文件数の推移

・中単価の注文件数の推移

・高単価の注文件数の推移

 低単価の注文内容と高単価の注文内容では、注文に含まれる商品の違いや、注文した会員の行動や属性に違いが必ずあるはずです。

 低単価の注文件数の構成が高くなっているのか、もしくは高単価の注文件数の構成が低くなっているのか、を注視すれば「注文単価が下がった原因」はある程度見えてくるはずです。

 このように業績改善に向けた課題や傾向を捉えるには、必ず鳥の目でグループ別の推移を捉えることが必要です。

 このグループ別の推移を捉えるのに、必ずしも「データアナリスト」や「CRMソフト」が必要とは限りません。エクセルの集計機能と統計機能を駆使すれば、エクセルでも対応は可能です。

 Excellent仕事術では、これまで培ってきたエクセル集計技術と統計処理・技術を活用して、御社の数字分析のお手伝いをします。

会員分析

会員分析のポイントは大きく分けて3つあります。

・新規会員の獲得状況 ➡会員数自体の分母を増やせているか?

・新規会員の2回目のリピート状況 ➡新規会員が定着しているか?

・既存会員のリピート状況 ➡優良会員が確実に育成できているか?

 つまり、まずは「新規・既存」と「優良・非優良」の2つの切り口で会員のグループ分け(セグメント)を行った上で、会員のグループ間の移行状況を把握することが必要です。

 Excellent仕事術では上記の2つのグループの切り口から、更に深堀した切り口でグループ分けを行います。

そして、基本の「新規・既存」「優良・非優良」のグループに加えて、更に深堀りしたグループ間の移行率を把握するためのツールを提供します!

事例②

その他の分析

 Excellent仕事術では、発注・在庫分析や予算作成・中期計画のシミュレーションなども得意分野としております。

ぜひ、この分野についての悩み事もExcellent仕事術にお問い合わせしてみてください!

ダッシュボード化

 数字分析を行った内容については、社内で共有し、次の行動につなげていくことも大事なことです。

 Excellent仕事術では社内の効率的な業績報告、情報共有のために一目で現状を掴むことができるダッシュボードの作も行います 。

エクセルダッシュボード

プレゼン・資料作成

 競合他社とのプレゼン競争に勝つためには、「数字の魅せ方」に突破口があります。海外のエクセル活用事例をうまく取り入れた「数字の魅せ方」こだわりましょう。「数字なんてただの数でしょ?」。そんなことはありません。「目で見て、数字の変化がリアルにわかる」効率的な資料作成術を、Excellent仕事術/ガッツ鶴岡がご提供します

-シンプルで誰の目も釘付けにするグラフ関連資料の作成をいたします。

Excellent仕事術/ガッツ鶴岡の強み

業務分析の経験が豊富

-上場企業から創業期のベンチャー企業まで、様々な事業規模での業務分析の経験が豊富

-内部監査も含めた内部統制対策をとおして、業務フロー図等の作成・業務分析の経験多数あり。

数値管理の経験が豊富

-銀行や証券会社等の金融機関への数値説明・交渉の経験が豊富

-EC通販での予算管理や中期計画作成、各種分析などの経験が豊富

最新のエクセル技術

 Excellent仕事術/ガッツ鶴岡は、世界の最先端のエクセル技術を常にキャッチアップしています!

-海外では日本と違い、エクセルの新機能/便利機能をうまく使いこなして業務の効率化に成功している事例が沢山あります

-小難しいVBAコードや複雑な関数は必要ありません。Excellent仕事術/ガッツ鶴岡がお教えする世界最先端のエクセルの新機能を使って、効率よく簡単にエクセル作業ができるようになります。

-エクセルは元々、表計算ソフトです。データベースソフトではありません。しかしパワークエリという新機能を使えば、エクセルをデータベースソフトとしても使いこなせます

 Excellent仕事術のガッツ鶴岡がパワークエリとの連動を作成します/お教えします。

事例①

<商品管理システム/エクセルとAccessの連携>

 業務メンバー各自が業務に即したエクセルのクロス表を使用しながら、エクセルへの入力データはAccessファイルに蓄積して各自で共有する仕組みを構築

<改善前・課題>

★1つのエクセルシートに様々な業務データと入出力表が混在

・商品の特性上、入荷した商品を手動で分割・並べ替えて管理する必要があった

・商品の並べ替え順を各業務で使い回すため、1シート上に様々なデータが混在

データ蓄積型式が不規則になり、VBAなどの自動化手段の活用が不可能

・1ファイルをメンバー全員で共有して使用するため、業務メンバーに待ち時間が発生

<改善後・効果>

★業務データはAccessに一元管理し、エクセルの入出力画面を業務毎に分散

・データはAccessに一元管理し、ADOという技術を使用して、都度、必要なデータのみエクセルファイルに呼び出す仕組みを構築。このADOの技術により、1つ1つの業務に即した画面作成が可能になった。さらに他の業務メンバーがファイルを使っている間に発生していた待ち時間も削減できた。

・Accessに一元管理したデータを、RPAに連携して会計システムへの入力を自動化した。これにより、残業時間が1月あたり200時間減らすことに成功

事例②

EC通販における会員のセグメンテーション>

 会員の1年間の購買履歴とアンケートの集計結果を分析し、会員のセグメンテーションを実施。それまで一律にマーケティング施策を行っていたが、会員のセグメント毎の施策(例:セグメント別の割引率設定など)を実施できるようになった

実績

-商社・畜産部門向け商品管理システムの開発

 ➡エクセルとAccess及びRPAと連携処理

-客先マスタ登録業務用システム開発/エクセル・RPA連携

 ➡エクセルVBAにてRPA入力用データを成型

-EC通販会社での会員分析・マーケティング施策立案

 ➡エクセル分析ツールにて会員の購買履歴を統計処理にて分析

-EC通販会社向け在庫管理システム

 ➡適性発注率をエクセルを使用して分析

ストリートアカデミーで講師もしています

経歴

Excellent仕事術運営者:鶴岡 敦(ガッツ鶴岡)

 新卒で総合商社に入社後、ユニクロに転職。更にEC通販会社に経営企画室長として入社。

 EC通販会社にて膨大なデータ量に苦戦。必要に迫られて自らエクセル学習を重ねるうちに、 海外の活用例などを知るようになり、エクセルの可能性に目覚める

1993年慶應義塾大学商学部卒

2002年USCPA合格

大学在学中にプロボクサーとしてデビュー

現在もボクシングジムで練習を続けている

 

 

大人のためのプログラミングゲーム~エクセルマクロも学べる~

エクセルマクロ(VBA)をもっと広めるにはどうしたらいいかを考えて作成したのが、この親子でも楽しめる「めいろゲームです」。これまでも紹介してきたアニメーションマクロを取り混ぜながら作成してあります【無料ダウンロード】。

 3つの迷路に取り組むなかで、プログラミングの基本である「繰り返し処理」をゲームをしながら体感できるようになっています

 これからプログラミング学習を始めるお子様も楽しめるように意識して作成してあります

このゲームを作成するに当たっては、こちらのサイトに大いに刺激を受けました

https://studio.code.org/hoc/1

フェイスブックの創設者、ザッカーバーグも登場するキッズ用のプログラミング学習ゲームサイトです

ザッカーバーグが前述のゲームサイトでこう言っています

「コンピューターが本当に得意のことのひとつは、コマンドを繰り返すこと」

まさにITの本質だと思います

我々の今の生活に欠かせないコンピューターですが、「繰り返し処理」がなければ我々の今の生活レベルは違ったものになっています

逆に言えば、「繰り返し処理」さえ理解すればITの本質を相当カバーできます

また、この「めいろゲーム」ではエクセルのコードが1部ですが表示されます

・ゲームを行っている際中

・ゲームをクリアーした後



プログラミングの上達のコツの一つは、コードに慣れることです

 このゲームを通じて、簡単なコードでもいいので「慣れ」を感じて頂けると嬉しいです!

表示されるコードについて、概要を以下に解説します

・ ActiveCell.Offset(1, 0).Activate

これは、カーソルの位置を「下に1つ移動する」という意味になります

通常、エクセルのセルの位置は「A8」「C2」という形で表現されます

まず「列位置(A~)」があり、次に「行位置」が表現されています

実は、エクセルではR1C1という形で「行位置」「列位置」の順番にてセル位置を表現する方法があります(R➡Row、c➡Column)

つまり(行位置,列位置)という型式にて、あるセル位置を基準にして行列位置を完全に定量化して表現する方法が可能です

ちなみに列位置を一つ右へ移動する場合には、次のコードを書きます

ActiveCell.Offset(0, 1).Activate

・For文(For~Next)

ForとNextに書かれたコードを繰り返し実行します

繰り返す回数は「For A = B to C Step D」という形で表現されます

・Do Until文

ある条件を満たすまで、Do UntilとLoopの間のコードを実行します

次に操作について概要を解説します

めいろ1~3までシートが分かれていますが、それぞれのシートでの操作はほぼ一緒です

コードを表示させたくない時には、次の画面で非表示も選択できます

・コード記入画面

コードはリストで選択します

・各種ボタン

「スタート」ボタンを押すと記入されたコードに従って、ペンギンが動き出す仕組みです

「やりなおす」ボタンを押すと、コード等がリセットされます

「やりかた」ボタンを押すと、ゲームの解説が表示されます

・めいろ1

記入されたコードを上から順に実行していきます

・めいろ2

めいろ1のコードの内容を、プログラミングの構文で言えばFor~Next文で集約する内容になっています

*実際にFor文を書くことはありません

・めいろ3

めいろ1と2はかなり簡単ですが、3は少しトリッキーな内容も入れています

プログラミングの構文で言えばDo Until~文で繰り返す内容になっています

*実際にDo Until文を書くことはありません

ゲームは次のアイコンからダウンロードできます

アイコン

めいろゲーム 312.61 KB 5 downloads

...

注意事項を書いたシートがあるので、そちらは事前にご確認ください

ぜひ、プログラミング自体を楽しんでみてください!

にほんブログ村 資格ブログ ビジネススキルへ
にほんブログ村 IT技術ブログ VBAへ


にほんブログ村

ピボットテーブルの役割を変えよう Part4~更新は不要3~

前回はファイル内にあるピボットテーブル他も含めて自動的に更新するイベントプロシージャ―(VBA)の書き方を紹介しました

今回は別の方法2種類紹介します

1.ファイルを開いた時の更新されるようにする

前回の手法だと、コードを短いとは言え、直接書かなくてはいけません

今回はチェックボックスにチェックを入れるだけで済む方法を紹介します

15

まず、ピボットテーブル上で右クリックして“ピボットテーブルオプション”をクリックします

16

そして、データの箇所をクリックし、”ファイルを開くときにデータを更新する”にチェックを入れます

こうしておけば、ファイルを開いた時にはデータ更新がされています

前回、紹介した方法でも”絶対確実”に更新されるとは言い切れません

(カーソルの操作の関係など)

こうしておけば、安心ですね

2.個別に自動更新するピボットテーブルを指定する

まず事前にピボットテーブルには分かり易い名前をつけておきましょう

17

そして、前回同様にシート名の箇所で右クリックしてコードを表示しましょう

19

以上です

前回までとあわせてピボットテーブルを自動更新する方法を解説しました

エクセルを活用する時に、意外な便利方法があるものです

貪欲に吸収して有意義な時間の使い方を行えるようにしていきましょう!

また次回!

にほんブログ村 資格ブログ ビジネススキルへ
にほんブログ村
にほんブログ村 IT技術ブログ VBAへ
にほんブログ村

アニメーションマクロ2

 前回は、アニメーションマクロの事例として、オブジェクト(四角形などの図形)が登場するマクロを紹介しました

 今回は、オブジェクトが移動するマクロをさわりだけですが紹介します

マクロを起動させると、テキストボックスが右側から移動してきます

この仕組みのポイントだけ解説しますね!

ActiveSheet.Shapes(“Txt1”).Left

コードにするとこういう形になります

ちなみにTxt1というのは、テキストボックスにつけた名称です

名称は昨日紹介した、検索と選択で指定できます

オブジェクトに名称をつけたら、下のコードの()の中に入れ、=で結んだ右側に位置を書きます

ActiveSheet.Shapes(“Txt1”).Left=100

この位置を指定するコードを繰り返し処理の中に入れると前述のテキストボックスが移動するマクロになります

次回は、アニメーションマクロを完成したいと思います!

にほんブログ村 資格ブログ ビジネススキルへ
にほんブログ村 IT技術ブログ VBAへ


にほんブログ村

アニメーションマクロ1

 最近、テレビでも動画紹介のようなコーナーが多くなってきました。スマホが浸透して、動画というものが本当に身近になりましたね。

 実は、エクセル上でも動画のようなものを作成できます

最初に、下のGIFをご覧ください

画像が画面に出現して、大きくなっていきます

今回は、この画像を出現するところだけ解説します

この画像を出現させることは手動でもできます

上のGIFの操作は以下の箇所から行えます

<エクセル画面上のホームタブ>検索と選択>オブジェクトの選択と検索>

ここでオブジェクトの表示、非表示はコントロールできます

この表示、非表示の処理をVBAコードで書くと以下のようになります

ActiveSheet.Shapes(“図1”).Visible = True or False 

検索と選択でオブジェクトに”図1”という名前を付与した上で、コードの中にオブジェクト名を組み込んでいます。ここが今回の回の一番のポイントです

短いですが、今回はここまでです

次回はもう少し、図1を動かしてみましょう!

にほんブログ村 資格ブログ ビジネススキルへ
にほんブログ村 IT技術ブログ VBAへ


にほんブログ村

Solverによるシミュレーション5~マクロ編・設定~

 今回からはマクロによりソルバーの設定・解決自体の自動化に取り組んでいきましょう!

 前回までの4回の解説では、ソルバーの基本設定から実践的に活用する方法まで解説させて頂きました

 Solverによるシミュレーション

  Solverによるシミュレーション2

 Solverによるシミュレーション3~実践編・整数設定~

 Solverによるシミュレーション4~実践編・バイナリ設定~ 

 ソルバーをマクロで活用できるようになると、弱気ベース、強気ベースなど様々なパターンで算出した値を瞬時に比較できるので、より実践的なシミュレーションが行えるようになります!

 今回はソルバーのシナリオを2つ、記録マクロで保存してみてVBAコードを比較してみましょう!

そうするとコードの書き方がつかめてきます

その前に準備が1つあります

 事前にVBE(Alt+F11で開く画面)でSolverライブラリを参照可能にしておきましょう!

このライブラリが無いと、記録マクロが動きません!

では本題に入ります

今回は1~3まで以下の表を通じて解説していきます

 注)D4セルも同様の数式(X1xX2)が入力されています

注)D3セルのYはシナリオ1用、D4セルのYはシナリオ2用になります

1.シナリオ1記録(※X1,X2は4以下の制約にてYを最大化する)

➀以下のシナリオでマクロを記録

②VBEを開けて重複しているコードを削除し、コードを以下の画像のように3部構成にします

③表の値を1にセットし直してシナリオ1マクロを起動

もしもうまくいかなかったら、余計なコードまで消してしまったか、もしくは前述の”Solverライブラリ”にチェックが入っていない状態になっています


2.シナリオ2記録(X1,X2は2以上の制約にてYの値を4にする)

➀設定リセット

記録する際には、ソルバーの設定画面上に前回の設定が残っているのでリセット処理を行っておきましょう

②以下のシナリオでマクロを記録

③VBEを開けて重複しているコードを削除し、コードを4部構成にします

注)シナリオ1にも”SolverReset”を追加しておきましょう!

④表の値を1にセットし直してシナリオ2マクロを起動する

どうです?うまくソルバーは無事に稼働したでしょうか?

3.2つの記録マクロを比較してみる

大前提として2つのシナリオの違いをもう一度整理してみましょう!

➀目的セル、変数セル、及び制約条件を指定するセルの行位置が違う

②目標値の設定の仕方が違う;シナリオ1/最大値、シナリオ2/指定値

③制約条件の符号が違う:シナリオ1/<=、シナリオ2>=

どうでしょう?朧気ながらどのへんをVBAの変数で置き換えられそうかについてのイメージがついてきたと思います

 今回は記録マクロにとどまりましたが、次回は本格的にソルバー・マクロを作成していきましょう!

にほんブログ村 資格ブログ ビジネススキルへ
にほんブログ村 IT技術ブログ VBAへ


にほんブログ村

ソルバーによるシミュレーション6~マクロ編・操作~

 今回は、前の回にて作成した2つのマクロを書き換えて、本格的にソルバーを動かすマクロを作成します

前回作成した2つのマクロは、作成条件が次の3つの項目で違っていました

➀目的セル、変数セル、及び制約方法を指定するセルの行位置

目標値の設定の仕方;シナリオ1/「最大値」、シナリオ2/「指定値」

制約方法の指定:シナリオ1/「<=」、シナリオ2「>=」

記録したマクロのコードを比較して、上記の違いがどう反映されているかを見てみましょう!

シナリオ1
シナリオ2

上がシナリオ1で下がシナリオ2です

おおよそ、黄色の目印を付けたうち、どこが「変数」で置き換えられるか見当がついたと思います

変数で置き換えられる箇所をまとめると、次の通りになります

・SolverOK➡SetCell:「目的値のセル」

      ➡MaxMinVal:1は最大値、2は最小値、3は指定値

      ➡ValueOf:指定値がある場合に指定(無い場合は0)

・ByChange➡「変動する値:値範囲」

・ SolverAdd➡CellRef: 「制約条件の範囲」

      ➡Relation:制約方法の指定

       *下の図の順番で指定:etc 「<=」は1、「=」は2)


      ➡FormulaText:制約条件の指定           

今回は前回作成したシナリオ1マクロを以下の3つ、

1.SetCell(目的セル)、2.ByChange(変数セル)、3CellRef(制約条件セル)

それぞれを変数で置き換えてマクロを動かせるようにしましょう!

1.範囲を指定できるようにしておく

今回はC2セルで1を選んだら上の行を操作する(前回のシナリオ1)、2を選んだら下の行(前回のシナリオ2)を操作するようにします

次の2.ではシナリオ1の前に、IF構文を配置し、C2セルに応じて前述の1~3の範囲を動かせるようにします

If mySheet.Range(“C2”).Value = “1” Then ~ else ~

2.マクロに変数をセットしてマクロを実際に動かす

➀If構文で変数を可変にする

②ソルバーのコードに変数を設定する

各X1、X2を1に直しながら、マクロを試してみてください

<まとめ>

 今回は、前回操作した記録マクロの範囲(以下の3つの範囲)を事前に指定できるようにしました

1.SetCell(目的セル)、2.ByChange(変数セル)、3CellRef(制約条件セル)

 次回はいよいよ、ループ処理により、複数のシミュレーションを一気に走らせることができるようにします!

にほんブログ村 資格ブログ ビジネススキルへ
にほんブログ村 IT技術ブログ VBAへ


にほんブログ村

エクセルで作るタイマー

エクセルでも、簡単な技術を組み合わせただけでここまで出来るといる!!

これを「エクセルで作るタイマー」で証明したいと思います

以前に書いた記事、スピードメーターグラフで円を傾ける技術について解説したことがあります

1_4.gif

上のGIFの通り、「系列のオプション」画面で「グラフの基線位置」を変えると円グラフが傾きます

この仕組みを活用して、1分タイマー作成します

時計

以下、「タイマーのオブジェクト作成」「ループ処理の作成」の2段階で作成方法を解説します

1.まずはタイマーオブジェクトを作成します

まず外円、棒(秒針)を作成します

秒針は円と棒を組み合わせて作成します

画像に alt 属性が指定されていません。ファイル名: 秒針.jpg

その後、作成した円と秒針をグループ化してオブジェクトを作成します

グループ化して置かないと、秒針と外円がうまく連動して動かなくなるので注意が必要です

19

オブジェクトを作成したら、オブジェクトに名前(時計)をつけておいて、後でVBAでコードを書きやすくしておきましょう!

以下がオブジェクト名を付ける画面です

20

上記の画面は「HOME」タブの右側「検索と選択」から開けます!

この「選択の画面」の詳細な使い方については、以下の動画を参照してください。

2.ループ処理のマクロを書く

待ち処理を組み合わせて、秒針を動かすためのループ処理をコードで書きます

①待ち処理⇒常に「今」から1秒待ち処理

以下が、待ち処理のコードです

Application.Wait Now + TimeValue(“00:00:01”)

②ループ処理のカウント(変数→i)をそのまま秒針の角度にします

1.で作成したタイマーオブジェクトの角度を変えていきます

Worksheets(“時計”).Shapes(“時計”).Rotation = i

③最後は時計オブジェクトを0に戻して終了です

Worksheets(“時計”).Shapes(“時計”).Rotation = 0

ぜひ、以下のサンプルファイルもダウンロードして直接参照してみてください

アイコン

タイマー 49.76 KB 55 downloads

...

このタイマー実は正確には1分で終了しません。うまく調整する方法もあると思いますが、今回は割愛しています

グラフを傾けながら作成するスピードメーターグラフの作成の仕方については、こちらで記事を書いています ⇒ スピードメーターグラフ

画像に alt 属性が指定されていません。ファイル名: スピードメーター2.gif

また、エクセルのアドイン機能でもタイマーがあります!

カラフルでとても使いやすいです!

興味のある方はぜひタイマーアドインをダウンロードしてみてください

画像に alt 属性が指定されていません。ファイル名: Timer-Excel.gif

にほんブログ村 資格ブログ ビジネススキルへ
にほんブログ村
にほんブログ村 IT技術ブログ VBAへ

RPAとエクセルとの融合の可能性

今日は今、話題のRPAについて思いつくまま書きたいと思う

RPAの仕事をしていて、気づいた点は大きく3つある

1.万能ではない、少なくともAIではないし、ユーザーがシナリオを書けるというのは幻想

良く落ちるし、万能ではない。RPAのデモなんかの時には動画を用意している人も多いのでは・・・

それでもRPAを使うのは、一度タクシーの便利さを知ってしまったしまったと同じこと

落ちると分かっていても、あの面倒くさい処理が少しでも軽減できれば・・・と思うのは

弱い人間の常なのだと思います。

後、AIと勘違いしている人が多い。これは全く勉強不足

更に、よくユーザーが設定できる、というのも幻想。

「我が社ではユーザー主導でRPAを導入・・・」なんていうのは、IT部門とユーザー部門の中間に専門部署が

実はあったりする。後、会社によってITリテラシーも違うし

2.やっぱりエクセルは便利

話しを分かり易くする為に2つ、実際にあった話しをします

ある人がエクセルのデータを消去する仕組みをRPAで作成していました。

どうやってやるかというと””(空白)をセルに埋め込むシナリオを書くのです

当然、シナリオ作成するのに時間もかかるし、実際に処理も何十秒かはかかる

RPAでVBAを動かすなら、シナリオもVBAの記入もすぐだし、処理自体もすぐです。

 

あらゆるRPAのデモを行ったり、見たりしていて気づいたのは、人の心を動かすのは

RPAが人の代わりに行う点ではなく、その処理スピードです

つまり、処理スピードがないとRPAの魅力は半減するのです

 

処理スピードを上げる為にもVBAとの連携を進める必要があります

ちなみに、RPAの魅力の一つは開発も修正もすぐに出来ること。繰返しになってしまうが、

VBAを使えば更に開発スピードを上げることができる

 

話しを基に戻して実際にあった話の2つ目をすると

ある基幹システムからエクセルをアウトプットした後、ファイル名をつけるRPAを作成していたところ

エクセルファイル(保存を有効にする、の制限がかかっている)を保存する処理がどうしても安定しない

そこで、ダウンロードした後(これまたファイル名が変わる)にRPAによりフォルダ内のファイル名を取得し、

VBAでファイルを名前をつけてコピーする処理に変えたところ、相当な進歩を見せた

VBAといってもネットから2行ぐらいコピーしたもの・・・それでも効果は絶大

RPAはVBAを動かすもの・・・と割り切ってもいいくらいの確信を得た

3.RPAの醍醐味は業務改善

これまたエクセルの話し・・・

RPAを動かすには投入データが必要です。私は基本的にはエクセルで作成しています

投入データは当然、RPAでも読み取れるようにシンプルなものしなければなりません

当然、ユーザー(業務側)は悩みます。

 

ああしよう、こうしよう、そういえば、そもそもこれは要らないよね・・・

 

そう、ついついエクセル管理表などはメタボになりやすいのです

RPAがメタボに気づくいい機会になるのです

 

とりとめなく書き連ねましたが、少しでも皆さんのお役にたてば光栄です

にほんブログ村 資格ブログ ビジネススキルへ
にほんブログ村
にほんブログ村 IT技術ブログ VBAへ

ピボットテーブルの役割を変えよう Part4~更新は不要2~

今回は実際に以下のGIFのようにピボットテーブルを更新不要にしましょう

GIF1

前回、更新不要にするのにイベントプロシージャ―を使う旨は少し触れました

今回は1.イベントプロシージャ―を活用するコードの入力画面を立ち上げる、2.実際にコードを入力する

の手順で行いましょう

2.で入力するコードはコピペで済みます

アイコン

サンプルファイル 21.13 KB 7 downloads

...

1.イベントプロシージャ―を活用するコードの入力画面を立ち上げる

ここは前回説明した通りです

GIF3

データ元、つまりデータの更新が起こるシートのシート名のところで右クリックして”コードの表示”をクリックしてください

2

2.実際にコードを入力する

まず、上の2つの欄を変更します

左側:(General)⇒Worksheet

右側:⇒SelectionChange

GIF4

これらの変更の後にエクセルシートに変更を加えると、事前に設定した指示(上の画像ではPrivateとEnd Subの間の記述)が動くようになります

この”更新を不要”にする為の事前の指示は以下のようにコードとして書きます

<Activeworkbook.refreshall>

実はこれだけです

6

もう少し、この仕組みについて解説すると

ピボットテーブルは直接、データから作られているわけではなく

データとは別などころにCacheを作っています

このCacheをイベントプロシージャ―の仕組みで更新(Refresh)してしまうのです

今回は以上です

次回、もう少し本格的な方法を解説します

にほんブログ村 資格ブログ ビジネススキルへ
にほんブログ村
にほんブログ村 IT技術ブログ VBAへ
にほんブログ村