VBA オートシェイプを使った泡のアニメーション
TwitterでJavascriptを使った綺麗なアニメーションが流れてきたので、VBAでも真似してみた。ics.media本家の躍動感まではコピーできなかったけど、それなりに見栄えのするアニメーションができたので紹介。作り方まずSheet1のオブジェクト名をプロパティウィンドウからScreenに変更する。そしてシートモジュールScreenのコードに初期化用のClearプロシージャを用意しておく。S...
View ArticleVBA 複雑な罫線をVBAで描き分ける
Twitterでお題が流れてきたので乗っかってみた。方眼紙Excelの正しい使い方。 pic.twitter.com/a05wFJpatH— waenavi (@waenavi_jp)...
View Article部屋を綺麗に保つために大事な「運用」という観点
断捨離とかミニマリストとかがもてはやされていた頃、なんとなく感じた違和感。それは私がシステムの運用に携わっているためかもしれない。一度開発されたシステムは、その後何年にもわたって運用されていく。作って終わりではないのだ。私は、お部屋の片付け・掃除は片付いた状態を作る「開発」作業だと思っている。重要なのはその片付いた状態をどうやって維持、つまり「運用」していくか。どれだけ綺麗な部屋を完成させても、日々...
View ArticleVBA IfやForの終了構文を自動補完するマクロ
※タイトルにつられた皆さん。多分イメージしてるものと違いますのでガッカリされないようご注意ください。Twitterで、IfやForの終了構文を自動補完することができないのかなという疑問が投げかけられた。 VBEには文字入力を検知してマクロを走らせるような機能は無いので、たとえば If ~ Thenと書いてEnterを押すと自動でEnd...
View Article辞は達するのみ by 孔子
論語に「辞は達するのみ」という言葉がある。これは「言葉はその意味が相手に伝わることが大事だ。」という意味だ。孔子が何を伝えたかったかという話は、以下2通りの解釈がある。だから分かりやすく慎重に言葉を選択するべきだからいたずらに飾り立てず、些細なことに拘らず、意味の方を大事にすべき(達してないやん。。と思ってしまうがそれは置いといて)さて、言葉はさながら生き物のように、時代と共にその意味や解釈が移り変...
View ArticlePowerPoint VBA サンプル ~ フロー図のコネクタだけ選択・複数シェイプに書かれた数字を一括インクリメント
何やらTwitterでPowerPointVBAネタがよく流れてくるので便乗してみる。と言っても新規ネタは無いので昔Webサイトに掲載した内容の再掲。パワーポイントVBA -...
View ArticleMicrosoftがOfficeのクリップアートを廃止してから資料の質が向上した件
Microsoftがクリップアート廃止してからもうすぐ4年。当時ゴリゴリのクリップアートユーザーだった私はとても残念に思っていたけれど、ふと最近資料を作っていて実はクリップアートが無い方が資料の質が上がるのでは?と感じるようになった。当時はこういうアバター系をよく使っていたんだけど、最近はもう、こういうので済ます。え、ダサいって?何を言っているんだ。この方はUML(Universal...
View ArticleVBA 正円同士の当たり判定用クラス
ゲームでは正確性よりもスピードが求められる場面がある。当たり判定もその一つで、キャラ同士がぶつかったかどうかの判定は矩形や正円などに単純化して表現される。今回Twitterで羽毛田氏がたい焼きのキャラの当たり判定の方法を模索してるようなので以下の画像を提案してみた。キャラを正円の組み合わせで表現できれば、3×3で9通りの正円の当たり判定を行えば良いことになる。今回はキャラ同士ではなく、正円同士がぶつ...
View ArticleVBA 標準モジュールの分割基準
VBAではマクロを記述する場所として複数の標準モジュールを利用できるが、何を基準に分けたら良いか分からないというツイートを見かけたので、私の考えを記しておこうと思い久々にブログ更新。モジュール分割の大前提として、私はまずプロシージャが適切に分割されているかどうかが重要だと考える。例えば以下のようにそれぞれのマクロが単一のプロシージャで構成されているとき、モジュール分割の動機は薄い。しかしプロシージャ...
View Article基本情報技術者の受験に役立つ、過去に書いたVBA記事の一覧をまとめてみた。
新年の初投稿で書き忘れてたので。さて、新年と言えば去年はこのような記事を書いた。thom.hateblo.jp節目のブースト効果で、今年こそは何か資格を取ろうとか、色々考えている方もいると思う。私が購読しているブログでも新年の意気込みが。今さらながら基本情報でもちょっと勉強してみようかしら。(絶対に合格してやるぜ(炎) thom訳)自作WindowsAPIクラスを修正した -...
View ArticleVBA Win32APIを使って、文字列の実描画幅を取得する。
PCのフォントには固定幅のものと可変幅のものがある。固定幅のフォントは単純に同じ文字数で改行すれば綺麗な矩形になるが、可変幅のフォントでは単純に同じ文字数で改行してもガタガタになる。これを概ね揃うようにWin32...
View ArticleVBA マクロでExcelのシェイプを旋回運動させる
こちらの記事に触発されて、ちょっと昔やった別の方法をご紹介。infoment.hatenablog.com参照元はとても王道的に計算してるんだけど、私のは手抜き。コードはこちら。PrivateDeclareSub Sleep Lib"kernel32"(ByVal dwMilliseconds AsLong)Sub FakeCircling()Dim sh As Shape Set sh =...
View Article仕事の話 属人化とロールについて
仕事をまわしていく中で、属人化がリスクであるということがよく言われる。属人化と聞くと、まさに「この人しかできない」「この人しか分からない」という状況をイメージされると思う。私が思う属人化はちょっとこれとは違う。ある仕事について、きちんとロール(役割)が定義され、マニュアルによって標準化されていれば、たとえそのロールに1名しか割り当てられていなくても属人化とは言わない。逆に、いくら業務シェアされて複数...
View ArticleVBA 環状矢印を複数個つなげてリング状にするマクロ
オートシェイプで矢印を綺麗な環状に並べたい場合がある。その名の通り「環状矢印」というシェイプを使うのだが、手でやるとなかなか綺麗にできない。試しに手でやってみたのがこちら。。ひどい。そこで今回は環状矢印を綺麗に並べるためのマクロを作成してみた。コードEnum CircularArrowAdjustmentItemValues eThickness =1 eStartDegree =4...
View Articleオブジェクト指向でつまづく7つのポイントと処方箋
こちらの記事で伊藤先生も書かれているように、この数年でVBAのクラスモジュールに関する情報が充実してきている。これからクラスモジュールについて学習しようと考えている方も沢山(期待を込めて)いらっしゃることと思う。そこで今回は、オブジェクト指向を学習するにあたってつまづきやすいポイントを紹介し、その処方箋としてアドバイスを書いてみようと思う。私がオブジェクト指向でつまづきやすいポイントは以下の7つだと...
View ArticleVBA オートシェイプを使って般若心経をスクロールするアニメーション
今回の記事はオートシェイプを左から右へスクロールさせながらメッセージを表示させるマクロ。ありがたいお経を題材にしてみた。コードクラスモジュールクラス名は「CharBox」として、以下のコードを張り付ける。Private sh As Shape Private limit AsDoublePrivate parent As Collection Private message...
View ArticleVBA タイムスタンプからユニークキーを生成する。
Excelでレコードごとにユニークキーが欲しくなることがある。ユニークキーとは、一意にアイテムを特定でき、変わることのないコードのことで、数桁の数値や文字列で表現される。実用上は単純な連番でも全く問題ない。ただ以下のようなシチュエーションで連番が崩れたときに、何となく気持ち悪い。項目の削除で欠番が発生したとき後からアイテムを挿入した時人間心理としては、改めて1から番号を連番で振り直したくなるものであ...
View ArticleExcel 2013ではセル範囲に名前を付けるとズームアウトしたときに範囲名が表示される。
表題の件、もう何年も使ってるのに今まで知らなくて、偶然見つけてとても驚いたのでここに記しておく。私の手元の環境でしか検証してないので他の環境は不明。たとえばこんな風に名前が定義されていたとする。それぞれ開始セルと終了セルには私が予め文字列を書いておいた。これを25%までズームアウトすると。。。ええええええええええええええええっ!!!!!!!ひょっとしてExcel慣れしている方からすると常識なのかもし...
View Article