タグ

vbaに関するmoerrariのブックマーク (120)

  • dayjournal | Try #008 – VBAのモダンな開発環境を構築してみた

    この記事は、「Excel VBA Advent Calendar 2017」の10日目の記事です。 時間なくて過去記事でごめんなさい。。。 5年ぶり?、10年ぶり?くらいにExcelVBAでの開発案件がありそうなので事前にできるだけモダンな開発環境を構築してみようと思います。 通常VBAExcel等のソフト内のエディタ(VBE)で開発し、モジュールの共有化やバージョン管理が難しい開発環境です。そのため今回は、VBE以外の外部エディタを利用したり、GitHubでバージョン管理や差分抽出ができる開発環境を構築できたらと思っています。 ツールについて自分で構築するか、既に良いツールがないか色々と探していたのですが、「text-scripting-vba」というツールが便利そうなので試してみました。詳細についてはText Scripting on VBAに記載されています。 まずはじめに、Exc

    moerrari
    moerrari 2020/06/18
  • vbacでエクセルVBAのソースコードをGitバージョン管理する方法

    みなさん、こんにちは! そろそろチームプレイも試したいタカハシ(@ntakahashi0505)です。 以前これらの記事で非エンジニアのための初心者向けGitバージョン管理や、Gitバージョン管理に便利なSource Treeの使い方についてお伝えしてきました。

    vbacでエクセルVBAのソースコードをGitバージョン管理する方法
    moerrari
    moerrari 2017/12/04
    vbacを展開、作成したbinディレクトリにxls(m)を配置しcscript vbac.wsf decombineを実行するとエクスポート。cscript vbac.wsf combineでインポートできる。
  • マクロで効率化してたら「マジ仕事しろや」と言われた話「おみくじで大吉が出ないと動かないようにしてもらいたい」

    みりん @miri1113n 「あいついつもマクロ組んでない?マジ仕事しろや」って言われたので、産休に入る時とかにすべてのマクロを占いメッセージが出るだけのおみくじに書き換えたい 2017-11-01 22:03:20 二藍 @hutaran プログラマさん同士でもあるんだなー。相手が素人だと「なんかプログラム?でちゃちゃっとやってよ。簡単なんでしょ」とか無茶難題言われたりするけども <RT 簡単なら自分でやって 2017-11-03 13:15:11

    マクロで効率化してたら「マジ仕事しろや」と言われた話「おみくじで大吉が出ないと動かないようにしてもらいたい」
    moerrari
    moerrari 2017/11/04
    本当にそんなことを言う人が実在するのだろうか…?
  • Excel方眼紙がはびこる理由、「神Excelはおかしい」と声を上げよ

    表計算ソフトのMicrosoft Excelを方眼紙に見立ててワープロのように使う「Excel方眼紙」。その是非を問う「Excel方眼紙公開討論会」が2017年9月30日に開かれた。否定派と肯定派の講演と、パネルディスカッション、来場者の質疑応答と、その内容は示唆に富む。初回は、否定派の立場で登壇した立命館大学の上原哲太郎 情報理工学部教授による講演の模様をお届けする。

    Excel方眼紙がはびこる理由、「神Excelはおかしい」と声を上げよ
    moerrari
    moerrari 2017/10/16
    "最初のマクロ機能は貧弱なものでしたが、ジョエル・スポルスキー氏がVisual Basicをベースに作り替えました。彼がビル・ゲイツ氏にマクロ機能のレビューを受けた模様は「My First BillG Review」というブログ記事"
  • Excel VBAマクロ パスワード解除方法

    Excel VBAでパスワードロックを解除する方法です。 VBAのパスワードロックは、ユーザーがプログラムを変更できないよう制限する為に設定するものです。しかし、時にパスワードが紛失するということがあります。「パスワードを忘れてしまった」「開発者が退職し、パスワードがわからない」などが理由として多いのではないでしょうか。 ひどい案件でVBAのパスワードがかかったまま渡され、担当者に聞いたところ「知らない」と言われて途方に暮れるプログラマーもいたと聞いたことがあります。 そんな方たちの助けになればと、VBAのパスワード解除方法を紹介します。 くれぐれも悪用したり、他人の著作物を覗き見るような不正はしないでください。 全て自己責任において実施してください。当方では一切の責任を負いません。 今回は Windows7 / Excel 2010 を使って検証しました。Excel 2007 以降であれ

    Excel VBAマクロ パスワード解除方法
    moerrari
    moerrari 2017/04/16
    2007以降で動くとのこと。残念ながら2003はこの方法では解除できなかった。
  • excelvba(2003,2007)でプログラムを途中で終了するには。Application.Quit以外で、プログラムを... - Yahoo!知恵袋

    excel vba(2003,2007)で プログラムを途中で終了するには。 Application.Quit以外で、プログラムを途中で意図的に終了させるには、なにか関数がありますか? excel vba(2003,2007)で プログラムを途中で終了するには。 Application.Quit以外で、プログラムを途中で意図的に終了させるには、なにか関数がありますか? _ 先ほどの質問url http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1258171952 もっと単純なコードにしました。 ループも使ってません。 excelのアプリケーション自体を終了させず、プログラムだけを終了させたい。 条件 ESCキー など、物理的なキーボードの操作を含む Application.Quit Exit Sub をつかわない。 Appli

    excelvba(2003,2007)でプログラムを途中で終了するには。Application.Quit以外で、プログラムを... - Yahoo!知恵袋
    moerrari
    moerrari 2017/02/26
    サブルーチンからメインルーチンに戻らずに終了するにはEndのみ記述する
  • 【VB系】変数の宣言と初期化を1行で書く(VB.NET,VBA,VBScript)

    VBAやVBScriptって、変数宣言と初期化がものっそい面倒なイメージがある。 C#やJavaみたいにint num = 0;みたいに書ければいいのに…って思っている方は多いのではないでしょうか? 実は、1行でも書ける! やっとVisual Basic系(VB、VB.NETVBA、VBScriptなど)で変数の宣言と初期化を1行で書く方法を見つけたのでまとめていく。 宣言と初期化を1行で書く ' VBA の場合 '---------------------------- Dim foo As Integer: foo = 0 Dim bar As String: bar = "hogehoge" Dim obj As Object: Set obj = WScript.CreateObject("WScript.Shell") ' VBScript の場合 '-------------

    【VB系】変数の宣言と初期化を1行で書く(VB.NET,VBA,VBScript)
    moerrari
    moerrari 2017/02/25
    Dim bar As String:  bar = "hogehoge"のようにコロンで区切ることで定義と代入を同時にできる。
  • VBAで速度アップテクニック~2重ループで文字検索する場合~ | 非IT企業に勤める中年サラリーマンのIT日記

    Excelマクロで、複数行のデータを別の複数行データから同じ文字列を検索するマクロがあったとします。この場合、よく使う手として2重ループを使って検索するのですが、2重ループのため時間がかかってしまいます。これを速度アップさせるテクニックを紹介します。 [ad#top-1] 例えば、下の図のようにA列に県市町村名が郵便番号順に並んでいて、B列に同じく県市町村名がランダムに並んだものを用意します。行数はA列、B列ともに1896行あります。 で、A列のすべての行に対して、B列の中に存在するかを調べるプログラムを組んだとします。 その場合、単純に考えると以下のようなプログラムになります。D1セルに処理時間、D2セルに処理回数を表示するようにしました。(TimerはNowと違ってミリ秒まで現れるので便利です) Sub Test1() dt1 = CDbl(Timer) cnt = 0 For m =

    VBAで速度アップテクニック~2重ループで文字検索する場合~ | 非IT企業に勤める中年サラリーマンのIT日記
    moerrari
    moerrari 2017/02/18
    2つの列を比較する際に二重ループにする代わりに列の片方のセル文字列を結合した文字列をInstrで比較することで速度を劇的に向上させるというもの。
  • Excel/VBA:処理速度を劇的に上げるテクニック3つ | 非IT企業に勤める中年サラリーマンのIT日記

    プログラマ以外の一般的なサラリーマンの間でExcel/VBAがよく利用されていますが、アマチュアだけにあまり処理速度を気にしていません。処理時間に数分かかってしまうようなものも放置されがちですが、やはり早いことには越したことはないので、速度をあげるちょっとしたテクニックを紹介します。 [ad#top-1] まずはサンプルコードです。 以下のプログラムコードは、C2セルの数値とC3セルの数値を割り算して前の結果に加算する計算を100万回行っています。 処理の最初と最後の時刻差を計算して秒数に直してC6セルに表示させています。この時間(秒)が処理時間となります。 Sub TimeTest0() time1 = Now() result = 0 For i = 0 To 1000000 result = result + Range("C2") + Range("C3") Next i Rang

    Excel/VBA:処理速度を劇的に上げるテクニック3つ | 非IT企業に勤める中年サラリーマンのIT日記
    moerrari
    moerrari 2017/01/20
    セルへの参照は変数に入れておく/Applicatioオブジェクトを使った処理はユーザ定義関数に置き換える。
  • Selenium VBAを使って自動でブラウザーを操作してスクショをExcelに張り付けてみた

    クライアントからシステム開発案件を受注し、開発成果物を納品する際に、エビデンスとして、Excel上に貼り付けたスクリーンショット(以下、スクショ)を、成果物の仕様書や納品書と共に納品する場合がある。この作業は、クライアントに「こういったテストを実行しました」という証拠を提示するものとなる。クライアントに成果物の機能や制限事項などを説明する場合に大変に有効なものとなっているのが現状だ。 実際、Excel上に記述したテスト仕様書や納品書にスクショを張り付けて、成果物の一部として納品しておくと、後々何らかのトラブルが発生した場合も問題解決に大きく寄与することになる。 しかし現実問題として、成果物の機能のスクショを、Excel上に手作業で延々と張り付けていく作業は単純作業であることもあり、開発者にとっては苦痛この上ない作業だ。 そこで、そのような作業を自動化し手助けをしてくれるツールとして「Sel

    Selenium VBAを使って自動でブラウザーを操作してスクショをExcelに張り付けてみた
    moerrari
    moerrari 2016/12/06
  • VBAのソースコードを保守し易くするためのツール vbac - ClockAhead 開発Blog

    【目次】 まえがき vbac の入手方法 vbac の使い方 vbac の仕様・注意点 余談1 余談2 【まえがき】 Microsoft Office製品で利用可能なVBAのコードは、ExcelやWordなどのバイナリファイルに内包される形で保存されます。このために、いわゆるバージョン管理システムでは適切に管理することができず、メンテナンス性が悪いという問題があります。 また、バイナリファイルに内包されるために、コードの確認や微修正などの細々した作業のためにも、WordやExcelを立ち上げ、VBEを開く手間がかかります。小規模にVBAコードを書いている分には困らないのですが、コード量が増えてきた場合(*1)や、複数人に配布したものを保守する場合などにおいては、お世辞にも使い勝手が良いとは言えません。 (*1)個人的な感覚ですが、1ファイルに含まれる総コード量が2,3千行を越えると、どうに

    moerrari
    moerrari 2016/12/06
    Selenium VBA: ブラウザをVBAから自動操作するだた1つの冴えた方法 - ClockAhead 開発Blog - http://blog.clockahead.com/2014/02/selenium-vbavba.html にて知ったブログ。
  • Selenium VBA: ブラウザをVBAから自動操作するだた1つの冴えた方法 - ClockAhead 開発Blog

    【まえがき】 現状、VBAでInternetExplorer(IE)を自動制御(自動操作)するという話となると、Microsoft Internet Controlsを参照する、もしくは、CreateObjectを使うことで、IEオブジェクトを直接操作するのが定番かと思います。 自分自身、今までは、Excel VBAのマクロで,IEを自動操作しよう (DOMセレクタ関数をVBAで自作)というblog記事を参考に、IEの制御部分をラップしたクラス(VAMIE)を自作して使っていたのですが…。 自動制御の対象とする IEのバージョンが変わるごとに、細々とした修正の手間が生じる&バージョン間の差異を吸収するような不毛な処理を実装し続ける(※)ことに発狂しかけたので、このたび制御方法を見直し、決別することにしました。 ※ ご存知の方も多いと思いますが、IEはバージョンによって挙動(DOM操作など)

    Selenium VBA: ブラウザをVBAから自動操作するだた1つの冴えた方法 - ClockAhead 開発Blog
    moerrari
    moerrari 2016/12/06
    IEだけでなくchromeやfirefoxも自動操作できる。はてなブックマーク - UIテスト自動化でSIerのExcelスクショは滅びるのか - てんてんのぶろぐ - http://b.hatena.ne.jp/entry/tenten0213.hatenablog.com/entry/2016/12/05/074427 のブコメより知る。
  • AddinBox(Main)

    エクセルで祝日/営業日処理・カレンダー・期間計算・ 勤務時間計算・旧暦/干支/六曜などについて調べている方 ちょっとお寄りになりませんか‥‥。 フリーソフト『kt関数アドイン』を使うと祝日や第2/4土曜休み など今まで大変だった定義がすごく楽になります。 他にも祝日情報・期間計算の考え方など、お役立ち情報を 公開しています。言語別の祝日判定コード公開中です。 ※ Outlook 祝日アップデート データ の提供を始めました。2050年までの祝日を登録できます。 ♪祝♪ H20/2/1 日公示された 官報 により、2009年の 「秋分の日」 が 9月23日 に確定しました。これにより、 かねてより アナウンス してきた 『9月の国民の休日(9月22日)』 も確定しました。  \(^o^)/ ※ Windows Vista 環境の方へ ※ Windows Vista 環

    moerrari
    moerrari 2016/08/13
    期間計算など。『YEARFRAC(基準:1) で 年齢計算 する危うさ』 について http://www.h3.dion.ne.jp/~sakatsu/Excel_Tips05.htm#YEARFRAC_Age にて知る。
  • Excel VBA+IEでのスクレイピング - プログラマでありたい

    書くと宣言しながら、すっぽかしていたクローラー/スクレイピング Advent Calendar 2014の11日目です。ExcelVBAで、IEの操作が出来ます。またその中の機能にDOM操作があります。この二つがあれば、Excelだけでスクレイピングできますよという話です。 何を隠そう、私が初めてスクレイピングに手を染めたのはこのExcel VBAスクレイピングでした。毎月定期的に所定のデータを観測するという仕事があって、面倒くさくて仕方がない私は記録用のExcelを魔改造して勝手に取得するようにしました。1時間くらい掛かってた作業も、ボタンポチになったので随分楽になったと記憶しています。(結局、ボタンを押すのも面倒くさくなって、毎日サーバサイドで動かすようにしましたが) スクレイピングの手始めにピッタリのExcel VBAスクレイピングです。環境の用意が簡単なので、ノンプログラマーでも

    Excel VBA+IEでのスクレイピング - プログラマでありたい
    moerrari
    moerrari 2016/05/05
    るびきちのrubyによるスクレイピング本の紹介も。
  • 昨日までJavaJavaしてた人がいきなりExcelのVBAを実装する羽目になったときのためのメモ - Qiita

    Excel は滅びぬ! Excel の力こそ日企業の夢だからだ! VBA 実装してて学んだこととかのメモ。 JavaJava してたかはあまり関係ないかも。 エディタの使い方 エディタを表示する Alt + F11 で VB エディタを表示できる。 環境設定 背景色・フォントを調整する デフォルトの白背景とか気が狂うので、暗い色にする。 「ツール」→「オプション」を選択し、「エディターの設定」タブを開く。 「コードの表示色」を選択して、「背景」の色を選択する。 ついでにフォントも見やすいやつに変更する。 これだけで開発効率が5割増しになる。 イミディエイトウィンドウ イミディエイトウィンドウを表示する いわゆるコンソールに当たるのが、__イミディエイトウィンドウ__と呼ばれるウィンドウ。 Ctrl + G で表示される。 イミディエイトウィンドウに出力する ↓イミディエイトウィンドウに実

    昨日までJavaJavaしてた人がいきなりExcelのVBAを実装する羽目になったときのためのメモ - Qiita
    moerrari
    moerrari 2016/04/26
    "コンパイルエラー時にポップアップが出ないようにするには「ツール」→「オプション」を選択し、「編集」タブの「コードの設定」にある「自動構文チェック」のチェックを外す。Excell VBAでMVC"
  • 洋々亭 文書処理・お仕事Tips

    Excelのマクロは業務効率化には不可欠の存在ですが、Wordとパワーポイントのマクロはほとんど使われていないようです。Word / パワポのマクロも、Excelと同じVBA (Visual Basic for Applications)というプログラミング言語で記述します。このため、ExcelVBAをいじったことがある人なら、少し勉強すれば、Wordやパワポでも処理の自動化が楽しむことができます。 ここではExcelのマクロをご存じの方のために、Wordマクロの基について説明してみます。 下のサンプルコードは、WebページをコピーしてWordに貼り付けたとき、不要なリンクや文字の書式を一括解除するマクロです。何ページもの文書を手作業で解除するのは大変ですが、この数行のコードでどんな大きな文書でも一発で処理することができます。 Option Explicit '必ず書くおまじない '

  • ぺがの覚え書き

    ぺがの覚え書き (読めば必ず為になる?^^;このページを見つけたあなた、ラッキー!) 2020/06/08 更新 【Access 一般】 サブフォームをRequeryしても、追加したはずのレコードが即座に反映されない場合。 サブフォームのレコードセットが『スナップショット』になっている場合、『ダイナセット』へ変更することで、改善する。 【Access 一般】 「名前の自動修正 」は、絶対使うな 『 ツール 』 ⇒ 『 オプション 』 ⇒ (全般) ⇒ (名前の自動修正) のチェックを全てはずして下さい。 機能が不十分なため、様々な弊害があります。例えば、リンク状態が正常でないテーブルを元にしているクエリーを編集しようとすると、クエリーの要素名がかってに修正され、手の付けられない状態になります。起動速度が極端に遅くなり、最悪、破損を起こします。 【Access VBA】 名前には日語や

    moerrari
    moerrari 2016/04/18
    レコードセットを開く際、OpenRecordset("ABC", dbOpenForwardOnly)のようにdbOpenForwardOnlyモードを指定することで、処理速度が格段に速くなる。
  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

    moerrari
    moerrari 2016/04/10
    vbaを効果的に使用したプレゼンテーション。上のページはhttp://www.geocities.jp/msjti157/IWT/PPindex.html
  • Excel VBA C# (Android Xamarin) 入門

    以前紹介した MPAndroidChart の色指定について、改めて理解した点があるので補足します。SetColorに色を設定するとき、Int型で指定するしか方法がないと紹介しましたが、これは誤りでした・・・m( __ __ )m Android.GraphicsクラスをUsingして、Color構造体を使えばRGBで指定したり、定型句で指定することができます。 excel-vba-csharp-beginner.hatenablog.com 要素を1色で統一して指定したいとき、SetColorを使います。 定義:public virtual void SetColor(int color, int alpha); 使用例①:DataSet.SetColor(Color.Rgb(80, 80, 250), 1000); 使用例②:DataSet.SetColor(Color.Yellow,

    Excel VBA C# (Android Xamarin) 入門
    moerrari
    moerrari 2016/03/25
    ブログ主はかつてIT業界の多重下請け構造で苦しんだとのこと。http://itpro.nikkeibp.co.jp/atcl/column/15/112000266/122200002/ 関連 / id:excel-vba-csharp-beginner ExcelVBAの話題楽しみにしています。
  • http://www.k1simplify.com/vba/tipsleaf/leaf243.html

    moerrari
    moerrari 2016/02/11
    Dir(DirectoryPath, vbDirectory)でディレクトリの存在確認ができる。