タグ

vbaに関するzaki1010のブックマーク (70)

  • EXCEL VBA 研究所(入門)

    SeleniumBasicで表示しているページのタイトルやURLを取得する方法を紹介します。 WebDriver.Title、WebDriver.urlで解決する 特に説明するまでもありません。WebDriverには、タイトルとURLのプロ...

    EXCEL VBA 研究所(入門)
  • 宇宙一わかりやすい?VBA-JSONを使ったJSONパースのしかた - Qiita

    はじめに VBAでJSONをパースする際にはCreateObject("ScriptControl")を使用するのが一般的でしょう。(サンプル例) しかし、この手段は32bit限定であり、64bitでは使用できません。将来性を考えたら他の手法を用いるべきであり、JSONパースのライブラリーとして一般的なVBA-JSONを使ってみることにしました。 導入の背景 Excel2010のサポートもそろそろ来年にきれるし、必要なときに必要なだけバラバラに買っていたのをやめて、Office365にバージョンアップしようとしたら64bit版がインストールされてしまって、JSONを使えなりました。なお、"HtmlFile"なる手段を使うやり方もあるようですが、IEやedgeの将来性を考えたらこれもつかいたくありません。 今までVBA-JSONを見送った背景 なら、VBA-JSONしかないとなりましたが、

    宇宙一わかりやすい?VBA-JSONを使ったJSONパースのしかた - Qiita
  • Excelを画面に出さずに、マクロを、コマンドラインから引数つきで呼び出す - ウィリアムのいたずらの、まちあるき、たべあるき

    ウィリアムのいたずらが、街歩き、べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も) Excelの内容を書き出したいとか、その他もろもろのときで、 ・Excelは表示しないで、 ・Excelのマクロを、 ・コマンドラインから実行したい ときは、ありませんか? で、こーいうときは、たいてい、 ・引数もいるのです。。 そういうとき、どうするか・・ ここが参考になりました。 Excel 起動オプションのお話(引数的なラブレターを渡したい) http://www.ken3.org/vba/backno/vba086.html ■仕様 いま、引数に渡されたファイル名をもとに、引数の内容を書き出すという、 Excelのマクロプログラム(関数testmsg)が、下のよう Public Sub testmsg(outfname As String, msg As String)

    Excelを画面に出さずに、マクロを、コマンドラインから引数つきで呼び出す - ウィリアムのいたずらの、まちあるき、たべあるき
  • コマンドラインからExcelマクロを実行する - 小さい頃はエラ呼吸

    はじめに Excelファイル内にあるマクロを実行するためには、Excelを一度手動で開かないといけません。定期的に実行するようなExcelマクロがあった場合、毎回Excelを開いて、マクロを実行するのは面倒です。 そこで、コマンドラインからExcelマクロを実行することができないかを調べてみました。 Excelを画面に出さずに、マクロを、コマンドラインから引数つきで呼び出す - ウィリアムのいたずらの開発日記 Excel VBA 逆引き辞典パーフェクト 2010/2007/2003対応posted with amazlet at 14.03.15田中 亨 翔泳社 売り上げランキング: 8,933 Amazon.co.jpで詳細を見る コマンドラインからExcelマクロを実行する 1.以下のソースを「execMacro.vbs」という名前で保存します。 Dim excelApp : Set

    コマンドラインからExcelマクロを実行する - 小さい頃はエラ呼吸
  • Excelマクロをバッチから実行する - Qiita

    はじめに Excelのマクロを使ってなんやかんやデータの集計をしたりすることがあると思います。これが定型的な処理で日次とか週次で実行する、あるいはパラメーターを変更して大量のケースを機械的に行う必要がある、というような場合、いちいちExcelファイル開いてパラメーター変えてポチっとマクロのボタン押すってのも面倒なので、自動化したいですよね。 バッチファイルからExcelマクロを実行することができる、ってのが分かったので整理します。何かと応用が利いて便利だと思います。 マクロを実行するVBScript バッチから...と言いつつ、実はVBScriptです。というのも、VBScriptはよく分からないので、基バッチを使ってバッチで出来ないところは他の仕組みで補うという方針なもので... 関連記事: Windowsバッチまとめ Windowsバッチまとめ 補足: バッチで出来ないことを他の仕組

    Excelマクロをバッチから実行する - Qiita
  • VBA Excelガントチャート作成マクロ - t-hom’s diary

    今回はVBAExcelガントチャートを作成するマクロを紹介する。 作成したガントチャート自体はマクロに依存せずExcelの基機能で動作する。 完成すると以下のようなイメージになる。 大元のアイデアはこちらのYouTube動画を参考にしている。 動画だと英語の解説で結構操作スピードも速い。また、手動で作成しているので毎回再現するのも面倒だ。 テンプレートを作って使いまわしても良いが、それよりもいつでも再現できるVBAコードの形で残しておこうと思って今回マクロ化した。 オリジナルを参考にしつつ私が新たに追加した機能は次のとおり。 現在進行中のタスクを赤い三角でマーク "Phase"で始まるタスク名を太字と色で強調 計画(PLANNED)と実績(ACTUAL)が入力でき、ガントチャートの方でもPLANNEDが背景塗りつぶし、ACTUALが「≫」で表示 現在のSTATUSはPLANNEDとPR

    VBA Excelガントチャート作成マクロ - t-hom’s diary
  • VBA開発環境をモダンにする - RubberduckとVBEThemeColorEditorの紹介 - Qiita

    VBAのIDEは古のVBE... なんだかんだでVBAを触る機会が結構あるが、IDEはVBE。 少なくともバージョン管理はほしい できる限りモダンな開発環境に近づけたい 見た目なんとかしたい ということで色々調べていたら、2つのアドイン・ツールを使うことでかなりそれっぽい感じにできることが分かった。ちなみに環境は windows10(64bit) + office2016(32bit) で確認。 紹介するアドイン・ツール RubberDuck VBEを現代のIDEっぽくしてくれるヤバいアドイン。1年前くらいに一度試してみるも、動作がかなり不安定でその時は使うのをあきらめた。 最近バージョン2.2がリリースされていたのでもう一度入れてみたところ、すんなりインストールできて動作もかなり安定している!ということで導入決定。 2018/06/10時点の安定版 VBAのエディタの色設定はデフォルトで

    VBA開発環境をモダンにする - RubberduckとVBEThemeColorEditorの紹介 - Qiita
  • VBAにはユニットテストやリファクタリング機能がない・・・そんなふうに考えていた時期が俺にもありました - Qiita

    コンテキストメニューまたは、メニューバーのRubberduckメニューからRefactorを実行することでリファクタリングが行えます。 下記の例では関数名を変更しています。 他にも引数の削除や順番が行えます。 テスト用のモジュールとメソッドの追加方法 Rubberduck→Unit Tests→Test Moduleでテストモジュールを追加、Rubberduck→Unit Tests→Test Methodでテストメソッドを追加します。 テストモジュール中の「'@TestMethod」というコメントが記載された関数がテストメソッドとなります。 テスト実行例 まず以下のようなテストモジュールを用意します。 Option Explicit Option Private Module '@TestModule '@Folder("Tests") Private Assert As Object

    VBAにはユニットテストやリファクタリング機能がない・・・そんなふうに考えていた時期が俺にもありました - Qiita
  • PythonでExcel操作を自動化する方法

    Pythonで「脱VBA」、Excelの行番号を記述せずにセルを指定する方法 PythonExcelデータを操作するには、行/列を指定してワークシートのセルにアクセスするのが基です。ワークシートはイテラブル・オブジェクトとして行を返しますし、行も同様にセルを返します。動作を確かめてみましょう。 2020.02.07 覚えておきたいPythonの基Excelのセルやシートを自在に操る方法 「Excelデータの転記」を自動化するプログラムを基に、Pythonの基テクニックについて説明しましょう。今後、Pythonで自分なりにプログラムを作っていくときに必須のテクニックばかりです。 2020.02.06 「脱VBA」の道筋がついに見えた、ExcelデータをPythonで抽出・加工する方法 今からプログラミングを学んで業務を自動化したいなら、筆者はPythonをお薦めします。Python

    PythonでExcel操作を自動化する方法
  • VBAで外部ツールを使わずに簡易テスト駆動開発をやってみる。 - t-hom’s diary

    最近会社の会議でTDDが話題になった。 TDDとは何か?まずWikipediaを引用してみる。 テスト駆動開発 (てすとくどうかいはつ、test-driven development; TDD) とは、プログラム開発手法の一種で、プログラムに必要な各機能について、最初にテストを書き(これをテストファーストと言う)、そのテストが動作する必要最低限な実装をとりあえず行った後、コードを洗練させる、という短い工程を繰り返すスタイルである。 テスト駆動開発 - Wikipedia 話題になったのは、「プログラムできてないのにテストを書けるの?」ということ。 答えは「Yes」 イメージとしては成果物が満たすべき要件を、最初からテストの形式で定義する感じ。 ちょっとやってみよう。 例えば数値を与えるとExcelの列記号に変換するプログラムを考える。 成果物イメージ 以下は成果物をイメージしやすくするため

    VBAで外部ツールを使わずに簡易テスト駆動開発をやってみる。 - t-hom’s diary
  • プログラムコード中に値(あたい)は登場しない - t-hom’s diary

    VBAに限らず全てのプログラミング言語で言えることだが、コード中に値(あたい)が直接登場することは無い。 最近、「値とは何か」ということを掘り下げて考えることがあり、ようやくこの結論に行きついた。 たとえば、数字の「1」。これは一般的に値だと理解されるが、表面的には単なる文字にすぎない。 「ひとつ」という概念を表した文字だ。 「1」という値が現れるのは、その文字を見た人の頭の中である。 値は確かに存在するが、書かれた文字は単なる記号でしかない。人が理解することで、初めて値が現れる。 プログラミングにおいても同じことが言える。 コンピューターは物事の概念を理解しないが、しいていえばコンピューターにとっての値とは、CPUが直接処理可能な「電気信号」である。 ただしブログ上に電気信号を書き表すというわけにもいかないので、便宜上スイッチのON・OFFを1と0で表した二進数で説明する。 たとえば次の

    プログラムコード中に値(あたい)は登場しない - t-hom’s diary
  • VBAで関数型プログラマーの思考法を学ぶ - t-hom’s diary

    これは私に関数型言語の素晴らしさを教えてくれたである。 プログラミングGauche 作者:KahuaプロジェクトオライリージャパンAmazon プログラミングGauche(ゴーシュ)。 一度売ってしまったのだけど、どうしてもそののコラム「Lisp脳」の謎に迫る-Schemeプログラマの発想がもう一度読みたくなって先日ついに買い戻してしまった。 そのコラムは手続き型の思考と関数型の思考の違いについて説明したもので、初めて読んだときはあまりに考え方が違うので衝撃を受けた。 これはGaucheという言語※のなので、コラムのコードも当然Gaucheで書かれているのだが、今回はこのコラムの内容をVBAのコードに置き換えて紹介ようと思う。 ※厳密にいうとGaucheは処理系の名称なので、言語名はSchemeだけど、どういうことか説明しだすとややこしいので割愛。 さて、その前に関数型言語について。

    VBAで関数型プログラマーの思考法を学ぶ - t-hom’s diary
  • Assert メソッド (Visual Basic for Applications)

    注釈 Assert 呼び出しは、開発環境でのみ動作します。 モジュールが実行可能ファイルにコンパイルされるとき、Debug オブジェクトのメソッド呼び出しは省略されます。 booleanexpression 全体が、必ず評価されます。 たとえば、And 式の最初の部分が False に評価されても、式全体が評価されます。 例 次の例は、Assert メソッドを使用する方法を示しています。 この例では、2 つのボタン コントロールを持つフォームが必要です。 既定のボタン名は Command1 と Command2 です。 この例を実行すると、[ Command1 ] ボタンをクリックすると、ボタンのテキストが 0 から 1 に切り替わります。 Command2 をクリックすると、Command1 に表示される値に応じて、何も実行されないか、アサーションが発生します。 アサーションにより、実行

    Assert メソッド (Visual Basic for Applications)
  • VBA Debug.Assertの使い方 - t-hom’s diary

    以下のプログラムを実行すると、ランダムな数値が出力される。 Sub BugSample() Dim Arr(1 To 10) As Long Dim UpperBound As Long: Upper = 1000 Dim LowerBound As Long: Lower = 10 Dim i As Integer For i = 1 To 10 Arr(i) = Int((UpperBound - LowerBound + 1) * Rnd + LowerBound) Next Dim j As Integer For j = 1 To 10 Debug.Print Arr(j) Next End Sub …嘘である。 わざとらしいバグなので一見してすぐに気付いた人もいるかもしれないが、これを実行してもイミディエイトウインドウには0が10個並ぶだけである。 バグは変数名である。Uppe

    VBA Debug.Assertの使い方 - t-hom’s diary
  • Excelマクロ(VBA)の単体テストを書いてみました。 - 地平線に行く

    Excelインクリメンタルサーチ を作るにあたって、できるだけ単体テストを書くように心がけています。 ただ、ブラウザの単体テストには Selenium があるのですが、Excelマクロ (VBA, Visual Basic for Applications) には適当なツールがありません。 そこで、我流のコードで VBA 単体テストを書いてみました! テスト対象の関数 その前に、テスト対象の関数は以下の通りです。 (セルが選択されていればそのままにする、選択されていなければ自動で範囲を選択する) Private Sub SelectRange() 'セルが範囲選択されているなら、そのままにする ' OK例: $A$5:$A$6 ' NG例: $A$5 If (InStr(Selection.Address, ":") <> 0) Then Exit Sub End If '使用されている範

    Excelマクロ(VBA)の単体テストを書いてみました。 - 地平線に行く
  • VBA Functionプロシージャの動作をテストするコード - t-hom’s diary

    堅牢なソフトウェアを作ろうと思ったら、テストは欠かせないプロセスだ。 ソフトウェアテストというのは、要するに「ちゃんと動くかどうか」を確認する作業なのだが、「使ってみました。たぶん問題ありません。」という簡単な話でもない。 私もあまりテストに関して知識が無かったので、以下の書籍を読んだ。 知識ゼロから学ぶソフトウェアテスト 【改訂版】 作者: 高橋寿一出版社/メーカー: 翔泳社発売日: 2013/12/10メディア: 単行(ソフトカバー)この商品を含むブログ (7件) を見る 語り口が軽快でサクサク読めるので、テストに興味があるけれどまったく初めてという人にお勧め。 さて、こので学んだ知識(同値分割法・境界値分析法)を基にFizzBuzzのテストを書いてみようと思う。 まずは、普通のFizzBuzzコード Sub FizzBuzz() For i = 1 To 100 Select C

    VBA Functionプロシージャの動作をテストするコード - t-hom’s diary
  • Accessで必ず使うVBA ほぼ完全なエクスポート 全オブジェクト+参照設定リストをエクスポート - Qiita

    Accessで重要なことはバックアップ 特に設定の書き出しが重要です。 AccessとかExcelVBAのソースを一括でテキストに書き出す - 面倒、死のう 2008-09-20 AccessのVBAソースを一括エクスポートするからさらに鍛え上げて オブジェクトのテキスト出力 フォーム*.frm ただしパラメーター入力が必要なものを除く レポート*.rpt マクロ *.mcr モジュール *.bas クエリ *.qry(とSQL \*_SQL.txt)VBS版のみ新機能 UTF-8版でのSQLの出力 VBA参照設定 \VBAReferenceList_Utf8.csv オブジェクトのXML出力 テーブルのスキーマ及びシステムテーブルのXML出力 BackUpオプションによって全データをXMLバックアップ可能 外部データのインポート、エクスポートの情報とXML出力 ALLImportExp

    Accessで必ず使うVBA ほぼ完全なエクスポート 全オブジェクト+参照設定リストをエクスポート - Qiita
  • VBA コーディングガイドライン - You.Activate

    このガイドラインについて システム開発の会社には、通常コーディングルールというものが存在します。それぞれ会社ごとに異なりますが、コードの品質を一定に保てるよう各社工夫されているようです。 VB.NETやC#、Javaにはコーディングルールを集めた書籍が存在します。 VB.NETルールブック ~読みやすく効率的なコードの原則 C#ルールブック ~読みやすく効率的なコードの原則 Javaルールブック ~読みやすく効率的なコードの原則 これらは何もシステム開発の標準というわけではありませんが、一例として誰でも見られる形で販売されているのは素晴らしいことです。 私はVBAにおいても一応指針となるようなものが欲しいと思い、そのような書籍を待ち望んでいますがどうにも発売される気配はありません。 一応QiitaというサービスでExcel VBAコーディング ガイドライン案というものを見つけましたが、少し

    zaki1010
    zaki1010 2019/08/16
    ググって見つかる他の規約より納得感が高い。
  • VBA-TDD - VBAでもテスト駆動開発を! MOONGIFT

    VBA…誰もが一度は経験している言語かと思います。ごくごく小さなツールを書くのには最適ですが、少し大きくなったり、中長期的にメンテナンスしなければならないとなったら嫌になるのではないでしょうか。 理由としてテストする仕組みがなく、トライ&エラーで作り上げるところに一因があるかと思います。そこで使ってみたいのがVBA-TDDです。 VBA-TDDの使い方 実行例です。イミディエイトウィンドウに結果が表示されています。 Function Specs() As SpecSuite Set Specs = New SpecSuite Specs.Description = "Add" ' Report results to the Immediate Window ' (ctrl + g or View > Immediate Window) Dim Reporter As New Immedia

    VBA-TDD - VBAでもテスト駆動開発を! MOONGIFT
  • VBDepend :: Achieve Higher VB6/VBA code quality