analytic-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へ


にほんブログ村

ソルバーによるシミュレーション7~マクロ編・ループ処理~

 今回はマクロ編の総仕上げとして、計算結果を示すダイアログボックスを表示させないまま、繰り返し処理の中でソルバーを動かせるようにします  

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

 前回は、前々回に作成した記録マクロを修正し、ソルバーの指定範囲(目的セル、変数セル、制約条件)を変数で指定できるようにしました(TargetRange、myRange)

前回作成マクロ

 繰返し処理とソルバーを組み合わせると、一度のマクロ操作で必要な値を一覧で取得できます。

 一覧で取得した値を比較することにより、 シミュレーションの精度を格段に向上させることができます

それはもう、AIを導入したかのうような感覚になりますよ!

ぜひ今回で繰り返し処理をしっかり習得しておきましょう!

今回、前回作成したマクロを引き続き使って、繰り返し処理をおこなっていくのですが、

実は今回、習得するポイントはあまり多くなく、1つだけです

!ソルバーのダイアログの表示をどう防ぐか?

ソルバーの計算が終わった後にダイアログが必ず表示されますよね?

この表示が出てしまうと繰り返し処理が止まってしまいます。

このダイアログの表示を止める方法については、後ほど解説致します。

 繰り返し処理自体のVBAコードの詳細な解説については、他の専門サイトや専門書に譲りたいと思います

目次

ソルバーの各指定範囲を変数で置換え

ソルバーのダイアログを非表示

実際に動かしてみる

<まとめ>

ソルバーの各指定範囲を変数で置換え

前回は2つの範囲をIF構文で切り替えて指定できるようにしました

今回は表の最終行(変数:Last)を取得した上で、カウントアップ用変数のiと連動してソルバーの対象範囲を変えていけるようにします

上の画像にあるmyRowはiと連動してカウントアップしていきます

ソルバーのダイアログを非表示

これはこの4文字を足すだけで可能です ⇒TRUE

実際に動かしてみる

下のGIF画像のように、最終行を変更しながらマクロを動かしてみましょう!

どうでしょう?うまく計算できましたでしょうか?

<まとめ>

 ソルバーを使うと複雑なシミュレーションも簡単に行えます。実践的に活用する為のポイントとしては以下の2つだと思っています

・制約条件を整数やバイナリ、など実用的な形で指定する

・Productsum関数や^2(差の絶対値化)など数式の使い方を工夫する

マクロについては意外と簡単だったのではないでしょうか?もしうまく行かなかったら、記録マクロを作成してよく観察してみましょう!

 最後に、アイキャッチ画像に使っているのはマクロで作成しているスピードメーターグラフです

 こういった見る人の目を引くアイテムと「ソルバー」を組み合わせると楽しいシミュレーションボードが出来ます

ぜひトライしてみてください

⇒スピードメーターグラフ(マクロ付き)はこちらから

⇒スピードメーターグラフ(グラフ機能版)の解説はこちらから

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


にほんブログ村

RPA導入日記~RPAあるある~

 爆発的にRPAが拡大しています。2018年はRPA元年と言っても過言ではないと思います。但し、当初と目論見が違った、目測を誤ったなどの体験をされた方も多いと思います。そんな”当初の○○と違った”というあるあるを自分の推測も入りますが、まとめてみました

1.RPAを導入したら人は要らないよね?

 経営者の方に多いと思いますが、RPAを導入したら、”人が要らなくなるので人の行き場に困る”、と悩んだ方もいらっしゃるのではないかと思います。

 実際には、RPA開発者を増やすなど、逆に人の頭数が増えたケースすらあるのではないかと思います。

RPAの効果は導入業務の種類、または対応の仕方で効果の出方が大幅に変わるので、現実的には”人が要らなくなるケースもある”ということにとどまるものだと思います。それよりRPAの導入目的をどこに置くのかが一番問題なのだと思います。

 敢えて付け加えるとRPAを起動させる人はどうしても必要です(やり方次第でそうでないケースもありますが・・・)。

2.AIと違うの?

 RPAとAIを混同される方がいますが、RPAとAIは違います。但し、新しいテクノロジーとして同じカテゴリーで話されるケースもあると思いますが、厳密には全然違います。重要なのはRPAとAIをどう連携していくか?ということに尽きます

3.RPAは止まらないよね?

これは止まります。RPAのデモで動画を準備している方も多くいらっしゃいますし、動画のみでデモすると割り切っている方もいらっしゃると思います。重要なのはエラーを防ぐ(止まらないようにする)努力と起こってしまった時に回復する仕組みの構築です

4.RPAはユーザー(システム部門以外)で開発できるよね?

これはできるということもできます。開発する内容、そして選択したRPAとの相性次第になります。後、もちろんユーザーの質も影響します。ただ総じていうと難しいと言わざるおえないとは思います「この○○RPAはユーザーが開発できます」という触れこみのセミナーにも参加したことがありますが、セミナー開発会社が社内で行ったであろう啓蒙活動や教育活動は他の会社でできるとは限りません。但し、ユーザーがRPA開発するのは究極的な理想形ではあるので、SEとの協業、融合を追い求めるのは当然の流れになるかとは思います

5.RPAは業務が人より早いよね?

これも業務によります。そしてRPAのシナリオにもよります。私の場合には業務自体を再構築しつつ、エクセルマクロと組み合わせてなるべくスピードアップする努力をしています。RPA機種によるとは思いますが、RPAにエクセル処理をさせると人間より遅いと感じることもあります。当然、エクセル内の処理はエクセルで行った方が早いので、スピードを意識する場合、どうしてもエクセルマクロとの連携は重視せざるおえません

以上、思いつくまま羅列しましたが、続編を書くことがあるかもしれません

最後に、どんな”あるある”が生まれてこようとRPAと人間の協業の流れは止まることはないと思います。長文でしたが、最後まで読んで頂きありがとうございました。

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


にほんブログ村

スライサーのリスト表示順とピボットテーブルの表示順を自由自在に変える方法

 ピボットテーブルの表示を操作しやすくするスライサーはとても貴重な存在です。スライサーを使うだけでエクセル画面が華やかになります。

  ただし、スライサーの使い方について、困ったことが起こっても日本語での解説はあまりないのが現状です(⇒スライサーについての詳細記事あります) 

 スライサーを使っていて困ることの一つは、スライサーで自動設定されている並び順を変えたい時です。そんな時にはリスト自体を自分で設定して独自の並び順を作成しましょう

この方法はピボットテーブルの表示順の変更にも活用できます

それでは、独自の並び順を作成する手順を3段階で説明します!

目次

1.並び順を決める

2.オプションの詳細設定でリストを設定する

3.並び順を変える

1.並び順を決める

 下の画面では、スライサー上では中村さんが1番上の左に来ていますので、田中さんの表示を1番上・左に移動したいとします

後で詳細を解説しますが、リスト全体を含めて並び順を設定するので、リスト全ての並び順を事前に決めおく必要があります

2.オプションの詳細設定でリストを設定する

 エクセル画面の左上、ファイルタブから⇒オプション⇒詳細設定をクリックして、下までスクロールします

 全般という文字が見えたら、右下に「ユーザー設定リストの編集」のボタンが見えますのでこちらをクリックします

立ち上がったダイアログの右側に 「1.並び順を決める」 で決めた順番でリストを記入しましょう

続きを読む スライサーのリスト表示順とピボットテーブルの表示順を自由自在に変える方法

スピードメーター(マクロ版)・テンプレート

エクセルのグラフ機能でスピードメーターグラフを作成すると、どうしても肝心な針部分などのデザイン性があまり良くありません。ですので、今回は針をグラフとは別途に作成し、イベントプロシージャ―を組み合わせて動く仕組みを作成しました

動く仕組み自体は至ってシンプルです

数字を指定するセルの値が変わるとイベントプロシージャーが起動するようになっています

イベントプロシージャ―が動いたら針を回転させるようになっています

プレゼン資料などに混ぜると、結構インパクトが高いのではないでしょうか?

また後日、作成の仕方の詳細について解説したいと思います!

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


にほんブログ村

グラフをモノクロ印刷でも魅せる

明確な意図をもって色遣いしたグラフでも、白黒で印刷 するので、意図したものが台無しになることってありますよね。そんな時の為の工夫を3つ紹介します

1.色の濃淡でメリハリをつけて作成する

グラフを作るときから、色の濃淡をつけて作成しておけば、色黒で印刷してもあまり作成時と印象は変わりません

幸にもエクセルの最近のバージョンでは自動的に濃淡をつける機能があります

グラフをクリックすると右上に下のような筆マークが出てくるで、マークの右側の”色”をクリックします。

すると、モノクロ柄が選べるようになります

ちなみに、手作業で色の濃淡をつけようとしたら莫大な作業になってしまいます

2.凡例(系列)の違いを画像で表現する

色使いの違いの意図が凡例の違いを一目で分かるようにするものである場合、白黒で印刷するとどこか物足らないものになってしまうことがあります

そんな時には以下の画像のように”画像”の工夫を行うこともできます

実は差し込みたい画像の上でCtrl+Cを押して、グラフ上でまたCtrl+Vを押すだけで画像をグラフに反映することができます

こちらの手法については詳細を別な記事で紹介していますので、ぜひご参考にしてください

3.グラフの形を統一してシンプルにする

たもに実績説明の場でこんなグラフを見ますが、白黒だととても理解できないものになってしまいます

こんな時にはグラフの形を統一してシンプルにしましょう

下のグラフは折れ線グラフの部分をマーカーと誤差範囲を工夫してグラフの形を統一しています

マーカーや補助線は実は魅せれる形にカスタマイズすることができるのです

こちらのグラフの作成の仕方・詳細については別な記事をぜひご参照ください

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

にほんブログ村 IT技術ブログ VBAへ

にほんブログ村

グラフを効率的に作成する3

では今回は前回から引き続き”データの選択”について解説します

今回の対象は凡例項目横(項目)軸ラベルになります

11

上の画像の左側に赤印をした箇所を「凡例項目」、右側に赤印をした箇所を「横(項目)軸ラベル」として解説を行います

1.凡例項目を使いこなす

凡例項目を使いこなして、下のグラフに2017の数字を加えてみましょう

12

追加を押すと、どのデータを追加するのかを指定できるようになります

14

追加を押した後は系列名系列値に分けて指定を行います

GIF5

これで2017の数字が追加されました

そして、順番を変えるには以下の▼▲(凡例項目の右端)を操作しましょう

GIF8

2.横(項目)軸ラベルを使いこなす

横(項目)軸ラベルほど使う機会がありませんが、知っておくと便利です

データの範囲を指定しなくても、表示項目のチェックの入れ替えだけで調整することができます

GIF7

上の画像では、「横(項目)軸ラベル」の部門Cのチェックを外すだけで、グラフから部門Cの表示が消えています

今回は以上です

また次回をお楽しみに!

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

魅せるフォント・テンプレート

ただのフォントでもこれだけ数字を魅せることができます!

Webdings、Wingdingsなどのフォントにはプレゼンに活用できる文字がたくさんあります

人と違う一味を加えたい時に覗いてみると思わぬ出会いがあるかもしれませんよ!

下のサンプルファイルにはお天気文字も入っています

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

にほんブログ村

グラフを効率的に作成する4

今回は”系列グラフの種類の変更”の使い方について解説します

”系列グラフの種類の変更”とはグラフ上で右クリックすると表示される”機能”です

例えば、下のスピードグラフはこの機能により違う種類グラフ(円、ドーナツ)を組み合わせ、表示軸も第1軸と第2軸を組み合わせを変えることにより完成します

1

この機能は数字を魅せるグラフ術でも盛んに活用されます。基礎の段階でうまく使いこなせるようにしておきましょう!

1.グラフの種類を変える

下のようなデータをグラフにしようとしていたとします

売上と利益ではデータとしての種類が違いますよね?

15

そのまま棒グラフにすると、下の画像のような形になります

16

 このままだと意味不明なので、まずは利益を売上とは違う種類のグラフにするため、利益グラフの上で右クリックをします

17

すると”系列グラフの種類の変更”の表示が出てきますのでクリックします

18

 上の画像のように「系列グラフの種類の変更」を表示すれば、自由自在にグラフを変更できるようにできますので、ここでは折れ線グラフを選択しましょう!

19

これでだいぶ見やすくなりましたね

20

2.軸を変える

利益の種類のグラフを変更することで、だいぶ見やすくなりましたが、そもそも売上と利益では数字の質が違う為、バランスが悪いので利益を測る軸を変えます

1の時と同じように”系列グラフの種類の変更”から第2軸にチェックを入れます

21

すると下のグラフのようになります

22

 売上と利益が違う基準で測られるようになった為、部門A、B、Cの違いが売上と利益の両面で分かり易くなりました

繰返しになりますが、この機能は頻繁に出てきますので早めに使いこなせるようにしておきましょう!

では、また次回

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

グラフを効率的に作成する5

今回はグラフシリーズの最後です

グラフを見やすくするための「仕上げ」について解説したいと思います

では早速、以下のグラフをご覧ください

24

何がなんだか分からないですよね?

では次のグラフを見てください

23

何と何が、どう違うのかが良く分かりますよね・・・

”何”と”どう”が揃って始めてグラフは意味をなします

この2つを分かり易くする為の工夫は”書式設定“で行います

今回の記事では代表的な書式設定の仕方を2つ紹介します

1.軸の書式を設定する

グラフをクリックすると右側に”プラス”ボタンが出てくるので”軸”をクリックします

25

すると、下の画像の黄色印の箇所のようにが表示されます

26

ここでは詳細を割愛しますが、軸の設定については下の画像のように、最小値や最大値を変えるなどの様々な指定も画面の右側でできます

27

2.データラベルの書式を設定する

1と同じくグラフ上で右クリックしてプラスボタンを押して下さい

”データラベル”をクリックするとグラフ上に”数字”が表示されます

28

ここから更に表示設定を変えたい場合は右にある▶をクリックしましょう

29

下の画像に表示されている「数字の表示の位置を変える/中央揃え、内側等」以外の設定変更をする場合には、”その他のオプション”をクリックしましょう!

30

様々なオプションが表示されますが、代表的なのはラベルを数字以外に変える設定です

31

例えば、”分類名“”を押すと以下のように表示されます

32

1と2を通じて今回はこれしか紹介できませんが、書式設定は本当に様々な方法があります

興味のある方はグラフエクササイズシリーズもご覧ください

ではまた次回

次回からはスパークライン(ミニグラフ)の解説を開始します

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