Excel VBA

20進数対応の基数変換マクロが出来ちゃった。

意外とあっさり出来ちゃった。正に『案ずるより産むが易し』ですね。 コマッタモンダ。(やろうかやるまいか)悩んでいた時間が馬鹿みたいじゃぁないか・・・。 Function 基数変換改(input_data As Variant, origin As Integer, base As Integer) 'input_dat…

基数変換マクロの修正完了

2進数を3進数に直したい場合、マクロの中で一度2進数から10進数に戻して、もう一度今度は10進数を3進数に変換するように修正しました。追記した命令は全部で4行。再帰の考え方を使ったので、プログラム記載行数の節約にはなりました。(プロの方から見ると格…

マクロを高速化するための、ちょっとしたテクニック

参考:このExcelマクロを効率化して実行速度を早くする方法を教えてください。 - 教えて!goo すでに回答が締め切られている内容なので、こんな所でアドバイスを書いておく。 遅いマクロを直したいならば・・・ 可能な限り非力なPC(処理に時間が掛かるPC)を…

昨日の基数変換マクロの問題発見!!

2進数の表現を10進数の数値として表現しているせいで、2進数を3進数に直接変換出来なくなっている。 2進数→10進数→3進数とすれば問題なく変換できるが、少し手間だ。 2進数の表現は、やっぱり文字列として取り扱った方が良いのだろうか?(そうすれば桁の繰…

基数変換マクロを作ってみた

横浜へなちょこプログラミング勉強会用に基数変換マクロを作ってみました。2進〜10進数までの間で表記の変換が出来ます。(16進数はint型の変数に格納出来ないからちょっと厄介。とりあえず10進数までネ) 動作状態はこんな感じ。excelのシート上で関数として…

複数行の同時入力マクロ作成

excelで選択済みの複数行に同じ値を入力するためには『値を入力する範囲を選択し、一つのセルに値を入力後、Ctrl+Enterで確定する』事で可能です。 これと同じような機能を持つマクロを試しに作ってみました。 やっている事は単純で、『選択されているセル情…

いつの間にか1800行のプログラムに成長していた。

会社の方で業務支援のために個人的に作っていたプログラムの更新が最近難しくなってきた。「何でかな〜?」とプログラムコードの行数を数えてみたら、合計1800行に達していた。 今まで300行程度のプログラムしか作った経験が無いのでこんなプログラムをどう…

メモ VBAで新しいexcelツールバーを作る方法

新しいツールバーを作る 参考サイトをメモしておく。ツールバーにマクロを登録しておけば、ボタン一発で登録したマクロを実行できるので便利。(しかも、マクロが記載されていないワークブックをマクロの実行対象に出来る。) 後はツールバーのボタンを作成…

 フォルダ一覧表を作成するマクロ

Excelでお仕事 ダウンロード(フォルダ一覧) 指定したフォルダに含まれているファイル名、作成日時等をexcelのワークシート上に書き出すマクロ。このマクロのおかげで、自分で作ろうとしていたマクロは全く不要になってしまった。ソースコードのロックも無…

日付の比較は簡単に出来る

Excelで、ある日付が既に記載されている日付より大きいか小さいかを判定する必要があって悩んでいたのだが、普通にcells(i,j).valueという命令でセルのデータを取ってきてif文で比較できる事が確認できた。(変数はvariant型を使用)。 こんなにあっさり出来…

VBAの実行速度高速化

VBAの実行速度はあまり速くないので、色々なテクニックを使って実行速度を早くする事が必要です。普段よく使っている方法を以下に記載しますので、参考にしてください。 一番手っ取り早いのは、『Application.ScreenUpdating = False』でマクロ動作中の画面…

VBAによるフォルダ生成

久々のVBAです。今回はオプションファイル等を格納するフォルダを生成するコードを書いてみました。以下のコードを実行すると、Cドライブ内に『オプション情報』というフォルダが生成されます。なお、オプション情報フォルダが既にある場合は何もしません。…

 ユーザーフォームの接触確認機能と簡単なゲーム

1/1000秒単位の時間を取得 Excelノート 17-1 図形 久しぶりにまともなVBAを作ってみた。 とある理由から、エクセルで簡易アニメーションを作る必要があったため、練習をかねて『弾丸が的を撃つ』アニメーションをVBAで作ってみた。参考にしたのは上記のサイ…

Excelで3Dグラフを描く

Make Stereo Graphic Images in Excel http://szksrv.isc.chubu.ac.jp/excel/3dgraph/3dgraph.html(日本語で記述されたページ) Excel2000で3Dグラフが描ける事は確認できた。…今まで描けないと思っていた。これまではgnuplotとかを使って3Dグラフを描いてい…

ガントチャート for excelを見つけた

明日のために今日できる事。 使えそうな機能があれば、ぜひマネをしたい。という事でメモしておく。ソースコード販売、再開しないかなぁ?

行を消す際の注意点

VBAで、『A行のセルが空白行ならば行を削除するマクロ』を作る場合の注意点を書いておく。今日、これに引っかかったので…。 このマクロを実現するために、次のようなコードを書いてみる。 sub 実験() for i=1 to 20 if cells(i,1).value="" then rows(i).sel…

データのグループ化

これを使うと、下図のように、プラスボタンでデータを展開、格納できるエクセルファイルが作れます。 作りかた 1.データファイルを用意します。 ※マンガ雑誌の見出しより転記。…偏っているのは気にしないで下さい。2.まとめたい行を選択します。ただし、見出…

とりあえずメモ

ER図から,Webアプリを自動生成しよう (A5SQL Mk2 + CakePHPを連携させる) 今日は頭が働いていないので、とりあえずメモだけしておく。

セル結合の解除

Excel セル結合ボタンをツールバーに設定 上記の記事が見当たらなかったので、セル結合の解除マクロを自分で作ってしまった。ちなみに結合解除のマクロは次のコードで実現できる。 Sub マージ解除() Selection.UnMerge End Sub でも、結合解除ボタンが(隠れ…

excelファイルの軽量化

とあるexcelファイルが、空白のワークシート1枚で32Mbというとんでもない大きさになっていたので検索。 大きい!重い!エクセルファイルの直し方 Excelファイルの軽量化の方法を教えてください 非表示のアイテム等は無いはずだから、『最終行の誤認識』が怪…

ちょっと変わったコンボボックスの使い方

先日作成したカタログインデックスが会社で実用化できそうなので、もう一つ機能を開発してみる。 下記写真のJTは食品と飲料を出している。カタログインデックスの絞込み機能において、食品と飲料の両方で引っかかるようにしたい。さてさて、上手く出来るかな…

 ただいまソフト開発中…

【開発ソフト】 カタログインデックス表示ソフト(仮称) 【ソフトの目的】 メーカー名をプルダウンリストから選択し、そのメーカーのカタログファイルNo.を表示する。 【解決する課題】 カタログファイルの背表紙を一々見ている時間を短縮する 【特記事項】…

カタログインデックス(仮称)完成

上で作っていたソフトが完成したので公開する。 ユーザーフォームの見栄えが適当なので、使う人は自分の好みの配置に修正して下さい。 【変更点】取り扱い品目欄をなくした。 【困っている部分】combobox.clear命令の動きがおかしい。とりあえず2回同じ命令…

ExcelVBAでゲームプログラミング

http://shadowslasheizan.blog114.fc2.com/ ゲームプログラミングには、他のアプリケーションでも使える知識が含まれているのでメモ。上記のサイトは記述内容が多く、説明文も絵付きで分かりやすく、実践的なのでオススメ。

イメージコントロールの変化

とある事情から『ボタンを押すとユーザーフォーム上の絵が変化する』機能を付ける必要が出たので実験してみた。需要があるかは知らないが、メモとサンプルマクロを掲載しておく。 【 メモ:マクロによるイメージコントロール実験】 イメージコントロールの絵…

ユーザーフォームの最前面表示実験

先日にコード内容の確認を行ったユーザーフォームの最前面表示について、実験して見たところ新たに幾つかの問題点を発見した。【問題点】 "Application.Visible = False"でexcelの表示を消さないと、最前面表示にならない こちらに記載されていた内容では、…

 フォームの最前面表示について。

以前記載したフォームの最前面表示について、動作を詳しく見ていこう。 thisworkbookに貼り付けるコードとユーザーフォームに貼り付けるコードはコメント通り。excelvbaで簡単なマクロを書ける人なら読めるだろう。 さて問題は、標準モジュールに貼り付ける…

カレンダーを作ってみた

昨日作っていたタスク管理システムからタスク管理部分を省いてカレンダーにしてみた。ついでにカレンダー下に矢印ボタンを付けて、オプション項目を表示できるようにした。本当は公開したい所だが、さてどうやって公開するかな…。

ユーザーフォームの最前面表示方法

http://www.kjufactory.com/bbs/thread.asp?thread=200401310000実験してみた所、ユーザーフォームが常に最前面に表示される事が確認できた。(avaさんの書き込み内容を丸写し) 常に画面上にユーザーフォームが表示される機能はスケジュール管理ソフト等には…

タスク管理システム概要完成

とりあえず、こんな動きをするっていう説明用のプログラムには仕上がった。 もう一つ作らないといけないプログラムがあるので、今日の所はこれまで。 【昨日から増えた部分】 ユーザー定義の出勤日、休日の設定が画面上でできる。(画面右側の出勤日、休日を…