ジョンエスアームストロング

202402月<< 03月 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 >>202404月

エクセルVBA(1)
 今日からエクセルVBAの使い方を私なりに整理して、シリーズとして説明してまいります。
 私が使用しているエクセル(Microsoft 365 のバージョン 2301)を基準に書いております。
 VBAは、Visual Basic for Applications の略で、この場合ですと、Excelに特化したプログラム言語ということになります。
 一つの記事にあまり詰め込んで書くと私自身が疲れますので(笑)、少しづつにいたします。
エクセルVBAを使うために、VBEの画面を表示させます
 専用のエディター「VBE(Visual Basic Editor)」を使いますが、その画面はショートカットキー「Alt + F11」で開くことができます(ワークシート画面との切り替えも同じショートカットキー)。
 けれど、クイックアクセスツールバーにアイコンを表示させておくこともできます。その場合は次のいずれかの方法で行います。
1.
 クィックアクセスツールバーに表示されているアイコン群の右にある▼をクリックして(下図参照)、プルダウンメニューから「すべてのコマンド」を選び、「コードの表示」を選んで、3へ。
 または、オプション設定から行う方法で、設定内容を広範囲に行う場合は、これが基本です。
2.
「ファイル」タブをクリックして、プルダウンメニューから「その他」を選び、「オプション」をクリックします。
「エクセルのオプション」ダイアログボックスが表示されるので、左側の項目から「クィックアクセスツールバー」を選んでクリックします。
 右側の大きな欄の左の上方に、「コマンドの選択」欄がありますので「すべてのコマンド」を選び、その下の欄に表示されている項目の中から「コードの表示」を選んでクリックします。
3.
 大きい欄の中央に「追加(A)>>」というボタンがありますので、それをクリックすると、選んだコマンドが右の欄に追加されます。
 下図が「追加(A)>>」ボタンを押したときの状態です。
 追加したアイコンの形を覚えておいて、右下の「OK」ボタンをクリックします。但し、アイコンを忘れても、アイコンの上にマウスを乗せたら、説明が表示されるのでそれで確認できます(但し、なぜか「データシートの書式設定」と表示されるので、不安になりますが、選択されているセルに対しての設定です)。
 なお、タブに「開発」を加えておいて、それを選んだ時にリボンから「Visual Basic」をクリックするようにしてもいいのです(開発タブは、「ファイル」→「その他」→「オプション」から、「リボンのユーザー設定」を選んで行います)。
パソコン | comments(0) | - | pookmark
Goalseekを自作
青梅(アジサイ園芸種)
京都府立植物園で
 エクセルの「Goalseek」は使いにくいので、この仕組みを自作してみました。
「Goalseek」とは、目標の計算結果になるように、計算式中の要素の一つの値を、微修正を繰り返して導き出すという仕組みです。
エクセルに装備されている「Goalseek」の欠点は次のとおりです
1.
計算式に用いる値(A)をセルに入力しておかねばならない
2.
セルに計算式を書かなければならない
3.
目標とする計算結果になるような値(A')が求まれば、それはメッセージボックスに表示され、そのまま「OK」ボタンで応答すると、元の値(A)に上書きされる
(上書きされるのを防ぐには、いずれかを転記するしかない)
自作した「myGoalseek」君に配慮したことです
1.
計算式はVBAで書く(計算式にはそれぞれ番号をつけておく)
2.
実行時は「計算式毎に付けた番号」「計算結果の目標値」「導きたい計算要素(A)の初期値を、「myGoalseek」に渡す
3.
計算結果「計算値と、求められた(A')の値」が、使いやすい形で返される
確認のために使った計算式の一例です
三角形の面積と2辺の長さを規定した時の、必要な2辺の角度
S = (1/2)* 辺Aの長さ * 辺Bの長さ * sinθ
正三角形の面積を規定した時の、1辺の長さ
S = √3 /4 * A ^ 2
球の表面積を規定した時の、必要な半径の長さ
S = 4 * π * r ^ 2
正四面体の体積を規定した時の、辺の長さ
V = (√2 /3) * A ^ 3
 他にも、計算値が極端になる計算式を考えたりして、デバッグを一通り終えるのに3日ほどかかりましたが、実用時にもエラーは必ず出るものとみておかねばなりません。
 その際の対応を繰り返していくことで、十分使いものになっていくでしょう。(^_-)-☆
パソコン | comments(0) | - | pookmark
年末のご挨拶
 この一年も大勢の皆さまのご訪問ありがとうございました。
 日記とは名ばかりの更新で、訪問いただきました皆さまにはたいへん失礼をいたしました。
下賀茂神社の絵馬

 年賀状バージョンの中の、「数置(番号B)」です。
 来年の干支にちなみ、「ワンワン」を数字の公開位置にしております。
 少し難しいのですが、1月5日には解答を掲載いたします。
 問題図を転記してまでやってられないという方は、下の問題図または ここ をクリックしていただいたら、回答用紙が表示されますので、印刷してお使いください。
数置(番号B)
それでは皆様、よいお年を。<(_ _)>
パソコン | comments(0) | - | pookmark
Office 365 Solo 自動更新の問題
 パソコンを Windows10 にしたことに伴い、エクセルをそれに対応させようと「Office 365 Solo」を買っていた。
 1年毎に買いなおす方式の製品だが、Office の 2016 を単品で販売しているのが見当たらなかったこともあり、それでもいいかと思って購入したものである。
 これは最新バージョンが自動的に更新されるようになっていて(そうならないような設定もできるようになっていたらしいが)、自動的に新しいバージョンに更新されたり、バグが解消されるのはいいように思っていた。

 ところが10月になって Excel VBA で作成していたアプリケーションの画面表示がことごとく異常になり、正常にできていた処理ができなくなった。
 こういう事象について、ネットで探せば報告なり苦情なりが掲載されて、原因が判明するかと思ったが、見当たらない。
 Microsoft社のサイトにも報告がなかったので、同社の販売に関するサポートの窓口から問い合わせをして初めて次のことが判明した。
 Microsoft社では、この10月4日の自動更新プログラムに原因があったことを既に把握していて、対応のための作業中とのことである。
 こちらは、トラブルが自分のせいかも知れぬと思って、最近インストールした他のソフトをアンロードしたり、システムを以前の時点に戻してみたり、Office 365 Soloをインストールしなおしてみたりしていたのだ。
 マイクロソフト社はこのような問題をすぐに知らせないことによって、副次的にどのようなトラブルや迷惑をユーザーに与えてしまうかということを考えないのだろうか。
 私は Excel VBA で事務処理ソフトをいくつか作って企業に提供し、自分が参加している組織の事務処理にも多用している。
 問題を隠蔽したまま処置してしまいたい、というマイクロソフト社の誠意のなさに失望し、怒りを覚えるのである。
パソコン | comments(2) | - | pookmark
エクセルの話
うどんちゃん
 エクセルVBAを使うアプリケーションの開発の話ですが、ユーザーフォームを使って構築すると、その起動中は他のエクセルが使えません。
 これは非常に使いづらいので何とかならないものかと思っていたのですが、ユーザーフォームの代わりにワークシートを使えば、このような不都合が起こらないことを最近知りました。
 ワークシートに標準で使えるようになっていないコントロール(=部品のようなもののこと)については、工夫する必要がありますが、不便であった「他のエクセルを開いて操作ができない」のが解消できるというのは心強いことで、作成済みのいろいろなアプリケーションを少しずつ作り直していく楽しみができたようです。
 右は友人Aのハムスターちゃん。
 そんなこと、今頃わかったの?
 と呆れております。(^^;)
パソコン | comments(4) | - | pookmark
マイクロソフト製品のインストール
ふれあいひなまつりのお雛さまの続きです。


 昨日ようやく、もう1台のパソコンに Office Professional 2013 をインストールできました。
 数日前まで、何度かそれを試みたのですが、うまくいかなかった理由が昨日初めて分かったのです。
 製品は2台のパソコンに導入することができますが、私は(マイクロソフト社側が)その条件が守られているのを、インストールの際に入力するプロダクトキーで管理しているのだと思い込んでいたのです。
 インストールに際してはアカウントの入力が必要ですが、アカウントすなわちメールアドレス(と、当然ながらパスワードの組み合わせ)をいくつ持っていても構わないのです。
 私は複数のマイクロソフト社製品を使っていますが、何もかも同じアカウントで導入するのが気持ち悪くて(メールアドレスはたくさん持っていますが、全てを同一にしておくのは危険だと思い)その都度別のものにしていたのです。
 ところが、ソフトはアカウントとプロダクトキーの組み合わせで管理されているので、1台目のパソコンに導入した時のアカウントでないと2台目にはインストールできないことが分かりました。
 インストール時の画面では、新しい(別の)アカウントでも構わないという説明がありますが、これが私が誤解してしまった原因でした。
 同じ製品を(許可されている導入可能な台数の)PCにインストールする場合は、その製品を最初に導入した時のアカウントでなければならないということをはっきり表示すべきです。
 ひとつの製品を、(許可されている導入台数分だけでなく)他人にも使わせないようにするための仕組みとしてアカウントが存在するということがしっかり認識できていたら、私は初めて導入する時のアカウントは(その製品とのセットで)記録しておいたでしょう。
 受け付けられないので幾つか作ったアカウントをいろいろ試し、パスワードまで変えてみているうちに回数制限にひっかかり、受け付けてくれなくなりました。
 マイクロソフト社が用意しているネットの相談窓口は不親切な仕組みで、今回の疑問の答えに到達できません。
 電話による相談窓口を調べ、休日明けの昨日、辛抱強く受話器を持ち「ただいま電話がたいへん込み合っております。お急ぎの場合はネットで・・」を15分くらい無視し続けたら、思いのほか親切な担当者が現れて(上の)原因が判明しました。
 パスワードのリセットをすれば大丈夫であることを確認して、インストールができたという次第です。
「初回導入時のアカウントではありません」という意味のメッセージが最初に表示されていたら、何が原因で受け付けられないのかということがすぐに分かって、こちらの対応の仕方が明瞭になったと思います。
パソコン | comments(0) | - | pookmark
パワーポイント
フェネックちゃん
ここが気に入ってるの

体重測ってるわけじゃないのよ


 「パワーポイント(以下、パワポ)に画像を一度にたくさん挿入できたらいいのだけど」、という人があり、エクセルVBAで作ってみた。
 パワポを実用のために使ったことがないので、調べたい記述の仕方をパワポのマクロで知ろうとしたが、パワポにはマクロを記録する機能が用意されていないことが分かった。

 それはそうかも知れないなと思った。
 プレゼン資料(パワポのファイル)は、毎回新たに構成などを考えて各スライドを作っていくだけだから、その作業工程で自動実行処理が必要なケースは想定しにくい。

 エクセルVBAで作ってみた処理は次のようなものです。

 1.挿入先のパワポを選ぶ
 2.画像ファイルのあるフォルダーの中からパワポに挿入したい画像を
   選ぶ(一度に複数可)
 3.挿入先のスライド(の番号)を選ぶ
 4.2と3を必要なだけ繰り返す
 5.パワポを出力する(元の名前でも、別の名前でも可)

 それにしても、エクセルはバージョン2013以降、ヘルプが使いにくくなり(ネットに接続していないと見られず、内容も分かりにくい)不便になりました。

パソコン | comments(0) | - | pookmark
エクセルVBAを一緒につくろ
 JEUGIAカルチャーセンター アル・プラザ瀬田で「初心者のための囲碁講座」をさせられてる させていただいている のですが、ちっとも楽しくないので(楽しんでいてはいけないのかも知れないけど)、もっと楽しくやれる講座を提案しました。

 それをこの秋からの新講座に混ぜてもらったのですが、生徒が誰も来ないと思うので、ちょこっとご紹介しますね。

友人が送ってくれた鳥

上は生徒を待っているところです(友人が送ってくれた写真です)


目的は
なんなの

 日頃エクセルでしている定型的な処理を自動化すると、間違いもないし、
 作業自体がとても楽です。

 データベースソフトも利用したエクセルアプリケーションの作り方が気楽
 に学べます。

 あなたの「こういうことがしたいんだけど」を、楽しく学びながら実現でき
 るお手伝いをします。

なにが
いるの

 教室に持参可能なノートパソコン(「えっ、いるの?」いります(汗))

 エクセル2007以上が導入されている必要があります。

 アクセス(Microsoft Access)2007以上が導入されている必要があり
 ます(これから導入されるのならご相談ください)
 (アクセスとの連携でデータの処理が楽になりますし、アプリケーション
 はエクセル側で作りますので、アクセス側の操作はほとんどないのです)

なにを
するの

(1)基本として必要なことを学びます

・エクセルアプリケーションについての基本を学びます
・データ処理の基本となるファイル(各種テキストファイル、エクセル
 ファイル)の操作を学びます
・エクセルでデータベースソフトを扱う方法を学びます

(2)受講者個々の目的を実現するための方法について具体的に学びます

  以下はその例です。

・データベーステーブルから必要なデータを選び、エクセル形式の表を
 作る
・住所録のデータベースから必要な相手を選び、ハガキに宛名を印刷
 したり、宛名シールを印刷する
・エクセル文書への(住所氏名やそれ以外のデータの)挿込印刷をする
・グラフなどの作成を定型化する

いつまで
やるの

 1回につき1時間30分です(これくらいでも疲れるというのを囲碁講座
 で学びました)。

 できるだけ短期間で基本的な知識を学んでいただけるように努力します
 (あなたも努力します (^_^;) )。

 それが終われば受講者個々の目的を実現するためのアプリケーションを
 実際に作ることで必要な知識を学んでいきます。

 目的とするところまで習得したとあなたが判断された時点で(mucaから
 学ぶことはもうないと思われたとき)、予告していただいて受講を終了して
 ください。

 JEUGIAカルチャーセンター アル・プラザ瀬田のページもご覧くださいね。

 mucaへのご質問は、そこのスタッフの方に言っていただければ伝えてもらえますので、よろしくお願いしますね。(*^^)v
パソコン | comments(9) | - | pookmark
ブログのテンプレート
 小人閉居して不全をなす

 小人閉居してブログのテンプレートを触って遊んでました。
 月が替わると(別の月に移動していただいても)ブログの背景色を自動で替えたいと思いまして。

 え?
 「そんなことしないでよい。 おまえしか見ないのだから」

 ははは・・(^_^;)

 (そういうお声はゴミ箱にドラッグして)

 気をとりなおして続けます。

 ブログはプログラムが公開されていないのですが、触れる部分のHTML文書とCSS文書でなんとかしなくてはなりません。
 Jugemが公開してくれている「独自タグ」の扱いに詳しくなれれば、もっと遊べるのですが今回はこの程度で一段落としました。

 一応、背景色を月別にこのようにしてみましたというのをお見せしますので「おまえの美的センスはなってない。カラーコーディネートは、こーでないと」というご意見をお待ちしております。

JavaScript文
 ついでですが、リンクバナーを勝手に少し作ってみました。

 これについて「これは私の高貴なブログにふさわしくない。アホかおまえは」というご叱責をいただけましたら、小人平伏して改善をなしたいと思います。

 「お前には無理じゃ、これを使え」ということでしたら、バナーのサイズは横幅150ピクセル、高さ26ピクセルにしていただいて、メールでも結構ですし、ご自分のブログに掲載されても戴きにあがります。

パソコン | comments(28) | trackbacks(0) | pookmark
グラフ作画の汎用アプリケーション

 どなたかのブログで拝見したアニメが素敵だったので、実家のシンビジウムを使ってマネをいたしました。
 つつしんでお詫び申しあげます。
 (^○^) ← 心から反省してる絵文字

 私が参加している囲碁同好会は棋力を点数にして対局のたびに更新します(勝てば1点増え、負ければ1点減少)。
 2年ほどこのシステムを続けているのですが、先日、皆さんの点数の推移を一覧表にしてさしあげ、ご披露しました。
シンビ

 成績が上昇しつつあったOさんは「おお、これはなんと励みになることよ」と喜んでくれ、下降の一途をたどるTさんは「自分のイメージどおりです」と、喜んでくれませんでした。


 そこでこれは表なんかではなく、いっそのことグラフにしてあげればもっと見やすく、刺激になるのではと思いました。
 Tさんの意向や、心の平和という問題も考えないではなかったのですが、こういうテーマができたらすぐに取りかかるのがオタクの真骨頂というものです。

 パソコンでグラフを描く時に普通よく使うのはエクセルです。
 これを使っておられる方はお分かりだと思うのですが、自分の思い通りの美しいグラフを描きたいときはイマイチのツールですね。

 ですから、アプリケーションを作りました。
 データファイルとは別に、作画方法を記号で書いたファイルを作り、折れ線や、棒グラフ(内訳入り)を好きなだけデザインできて、図形や文字も好きなだけ書き込めるというつまらない仕組みです(イヤミな謙遜)。
 最近気になって毎日測るお腹まわりも、グラフにしてお腹の成長を楽しく見守りたいと思います(泣)。





パソコン | comments(32) | trackbacks(0) | pookmark
植物園で
CATEGORIES
ARCHIVES
RECENT COMMENT
RECENT TRACKBACK