タグ

vbaに関するtadaemonのブックマーク (31)

  • Excel VBAマクロ パスワード解除方法

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

    Excel VBAマクロ パスワード解除方法
    tadaemon
    tadaemon 2017/02/14
  • 昨日までJavaJavaしてた人がいきなりExcelのVBAを実装する羽目になったときのためのメモ - Qiita

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

    昨日までJavaJavaしてた人がいきなりExcelのVBAを実装する羽目になったときのためのメモ - Qiita
    tadaemon
    tadaemon 2016/04/26
  • Excel VBA+IEでのスクレイピング - プログラマでありたい

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

    Excel VBA+IEでのスクレイピング - プログラマでありたい
  • エクセルで「名前」と書式の「スタイル」を一括削除する方法 - 高密度商業地域

    1つのエクセルブックを長く使っていると、名前(メニューバーの「挿入」>「名前」の名前)とスタイル(メニューバーの「書式」>「スタイル」のスタイル)がいつの間にか大量に増えていることがあります。 一見しても増えていることはわかりません。また、意図して使っているのであれば問題ありません。 が、特に意識していなければ、いつの間にか以下のような悪影響を及ぼしている可能性があります。 テキストファイルのみのエクセルファイルにもかかわらず妙にサイズが大きい。パソコン自体の動きは快適なのに、特定のエクセルファイルの編集に妙に時間がかかる(重い)。名前が他のフォルダのエクセルファイルに紐付けされてしまっている。 特に、「名前が他のフォルダのエクセルファイルに紐付けされてしまっている」と、そのフォルダ名に特定のプロジェクト名や、顧客名が使われていた場合、そのエクセルファイルを使いまわせば、「あ、こんなプロジ

  • Excel VBAのColorIndexプロパティに指定できる値の一覧:エクセルマクロ・Excel VBAの使い方

    VBAで色を指定するときには、ColorIndexプロパティやColorプロパティを使うわけですが、特にColorIndexプロパティに指定できる数値と実際の色の対応関係がわかりにくいので、ColorIndex順の一覧にしました。 ColorIndexの値に、Colorプロパティで取得できる値の16進表記とRGB10進表記を併記しました。 (VBAの仕様上16進表記ではRGBではなくBGRの順になっています。例えば「&H0066FF」なら、「00」はB、「66」はG、「FF」はRを示しています。)

  • Excel VBAでUTF-8のテキストファイルを扱う(ADODB.Stream) - 百年の未読

    自分にとっての覚書です。 Excel VBAでテキストファイルを書き出すために、こんなマクロを組んでいました。 Dim n As Long n = FreeFile Open "C:\sample.html" For Output As #n Print #n, "テキスト" Close #nけれど、この方法だと、できあがったテキストファイルの文字コードはShift-JISになります。 Excelのデータから大量にHTMLを生成するVBAを組もうと思っていたのですが、今回作成したいファイルの文字コードはUTF-8。 テキストファイルを作成した後に、文字コードを変換するという手も考えましたが、ひと手間増えてしまいます。どうにかならんかと検索してみたところ、VBAで文字コードを指定してテキストファイルを読み書きするにはADODB.Streamを使えばよいということが分かりました。 [参考にした

    Excel VBAでUTF-8のテキストファイルを扱う(ADODB.Stream) - 百年の未読
  • Excel VBA入門

    Excel でこれから VBA を使ってみたいという方を対象にした VBA 入門です。 VBA とは Visual Basic for Applications の略で Excel や Access などで利用できるプログラミング言語の1つです。 VBA を使うことで手動で行っている定型的な業務などを自動化させたり、独自のフォームなどを作成して Excel をアプリケーションのように見せることなどができます。ここでは Excel での VBA の使い方についてサンプルを使いながら解説していきます。 ※ Excel でマクロを記録する方法などについては「Excelマクロ入門」を参照されてください。

    Excel VBA入門
  • http://news.mynavi.jp/tag/0002559/

  • Excelの醍醐味! 明日からできるデータの並べ替え、検索、置換、抽出

    Excelの醍醐味! 明日からできるデータの並べ替え、検索、置換、抽出:Excelマクロ/VBAで始める業務自動化プログラミング入門(7)(1/5 ページ) プログラミング初心者を対象にExcelマクロ/VBAを使った業務自動化プログラムの作り方を一から解説します。今回は、データ操作のメソッド、Sort、Find、FindNext、Replace、AutoFilter、AdvancedFilterなどの使い方について、実例を交えて解説する【Windows 10、Excel 2016に対応】。 プログラミング初心者を対象にExcelマクロ/VBAを使った業務自動化プログラムの作り方を一から解説する連載「Excelマクロ/VBAで始める業務自動化プログラミング入門」。前回の「プログラムの肝! 条件分岐と繰り返しの基文法とさまざまな書き方」では、VBAに限らず手続き型プログラミングに必要とな

    Excelの醍醐味! 明日からできるデータの並べ替え、検索、置換、抽出
  • No.17 VBAで連想配列 ~ Scripting.Dictionary

    VBAな方には連想配列というのはなじみのない言葉かもしれません。awkにはじまりPerlJava、ノーツ(LotusScript)でもリストとして実装されているものです。通常の配列の場合は数字をインデックスとして値を格納しますが、連想配列の場合は文字列をインデックスとすることができます。箱を配列とすると値は中身、それぞれの箱に名札(ラベル)を付けることができるので値を取り出すときも感覚的にわかりやすいですよね。それ以外にもメリットがあります。通常の配列の場合あらかじめ領域を確保しておく必要がありますが、連想配列の場合は不要で配列が溢れることを気にする必要がないのです。 Perlでの記述例 $Result{'山田太郎'} = 95; $Result{'鈴木次郎'} = 78; $Result{'田中三郎'} = 83; print $Result{'山田太郎'}; Dictionaryオブ

  • Office TANAKA - Excel VBA Tips[重複しないリストを作る(1)]

    「キー」と「値」がセットになっていて、「神奈川県」というキーで「横浜市」という値を検索できるような仕組みです。Dictionaryオブジェクトでは、こうした連想配列にデータ(キーと値のセット)を追加したり、検索したり、任意のキーがすでに存在しているかどうかを調べことなどができます。なお、連想配列では同じキーを登録できません。 Dictionaryオブジェクトを使って重複しないリストを作成するには、次のように考えます。 セルA2からセルA8まで順にデータを取得します 取得したデータが連想配列に登録されていなかったら登録します 取得したデータが連想配列に登録されていたら何もしません 流れはこんな感じです。さて登録するデータですが、連想配列では「キー」と「値」の二つが必要です。今回のケースでは「名前」データしかありません。「名前」を「キー」にするとして、「値」には何を登録したらいいのでしょう。

  • ExcelVBAを高速化する7つの方法 - 水まんじゅう2

    富士通さんがExcelで分散環境にアクセスするソリューション()を開発してくれたけれども、それに対してVBA()みたいな反応が多かったので作成してみました。Excel上からVBAを扱おうとするとシングルスレッドではあるものの、十分な速度が出せると思っています。速度が出ない場合は殆どが不適切なコーディングによるものです。以下に高速化するための7つのTIPSを載せます。 セルにできる限りアクセスしない ExcelはなぜかCellオブジェクトにアクセスするのが非常に遅いです。そのため、Cellオブジェクトには出来る限りアクセスしないほうが良いです。Excelの最後のシートに設定を書き込んだものを用意するとかやる場合がありますが、値が数千回読み込まれるならば一度VBAで全部読み込んでしまって使いまわしたほうが高速化出来る可能性があります。 とりあえずお勧めなのがDictionaryクラス(いわゆる

    ExcelVBAを高速化する7つの方法 - 水まんじゅう2
  • Excelでプログラム作成を始めるメリットとマクロの基本

    今回から数回にわたって「Excelマクロ/VBAで始める業務自動化プログラミング入門」を書くことになった。正直言って、ExcelのマクロやVBA(Visual Basic for Applications)は数十年前にちょっと触っただけで、全くの初心者といっても過言ではない(2014年当時)。連載はプログラミングの初心者を対象にしているので、筆者も勉強しながら「読者の皆さまと一緒にExcelマクロ/VBAについて学んでいければ」と思っている。 なお、連載を執筆するときに使った筆者のソフトウェア環境は、OSが「Microsoft Windows 10 Professional」(64ビット)で、Excelは「Microsoft Excel 2016」だ。この連載では原則として「Excel」というとMicrosoft Excel 2016の使用を前提としているが、お手元のExcelでもでき

    Excelでプログラム作成を始めるメリットとマクロの基本
    tadaemon
    tadaemon 2014/02/26
  • 初心者でも図解で分かる! VBEの基本的な使い方とVBAプログラムの基礎文法

    プログラミング初心者を対象にExcelマクロ/VBAを使った業務自動化プログラムの作り方を一から解説する連載「Excelマクロ/VBAで始める業務自動化プログラミング入門」。前回の「Excelでプログラム作成を始めるメリットとマクロの基」では、そもそもプログラミングとは何か、Visual BasicとVBAとマクロの違い、マクロの作り方、保存/削除、セキュリティ設定などについて解説した。 今回はExcel VBAプログラミングの基的な用語解説をメインに、VBE(Visual Basic Editor、VBエディター)の画面構成や使い方も解説する。プロパティ、メソッド、オブジェクトなど専門用語が出てくるが、できるだけ分かりやすく解説したいと思う。どうか、嫌にならずに着いてきてほしい。 これらの用語はプログラミングをする上では必ず出てくるものであり、意味を知らずしてプログラミングすること

    初心者でも図解で分かる! VBEの基本的な使い方とVBAプログラムの基礎文法
  • Excel VBAではじめるクラス入門

    はじめに Visual Basicが独自のクラスを作成して使えるように、Officeに搭載されているVBAでも独自のクラスをプロジェクトに組み込むことができます。作成したクラスは、各Officeアプリケーションで「インポート」「エクスポート」ができるため、汎用性のあるクラスを1つ作成すれば他のアプリケーションのVBAでも利用できるようになります。 そこで、稿ではExcel 2003で利用できるクラスを作成しながら、VBAでクラスを作る方法を紹介します。 対象読者 Excel VBAを使ってマクロ(プログラム)を作ったことのある人、Visual Basicが使える人が対象です。 必要な環境 Excel 2000、2002、2003が使用できる環境。 クラスは便利 VBAでクラスを作成するメリットは、複雑な処理を1つのオブジェクトにまとめ、プロパティやメソッドを通じてその機能を呼び出したりパ

    Excel VBAではじめるクラス入門
  • Office TANAKA - Excel VBA Tips[正規表現によるマッチング]

    VBAから正規表現を使うには、VBScriptが便利です。ただし、正規表現をサポートしているVBScriptはVer5.0からですから、IE5.0がインストールされているパソコンでないと使えません。 VBScriptの中で正規表現エンジンを提供しているのはRegExpオブジェクトです。参照設定によるEarly Bindingか、CreateObject関数を使ったLate Bindingで参照します。ここではLate Bindingによるサンプルを紹介します。 まずは、正規表現で使用するオブジェクトとプロパティやメソッドを整理しましょう。 RegExpオブジェクトのプロパティとメソッド

  • Office TANAKA - VBA高速化テクニック[配列を使う]

    パソコン通信時代に書いた、この「VBA高速化テクニック」の中で、間違って伝わっているな~と感じていたのは、冒頭の「画面を止める」と、これ「配列を使う」です。90年代のパソコンはスペックが低かったです。CPUは遅いし、メモリも少なく低速、Windowsの画面描画機能も遅かったし、そもそもExcelもそれほど速くはなかったです。そんな中で、大量のセルにアクセスするのなら、一度配列に入れて配列を操作する方が速いよって話でした。でも、何となく「配列に入れると速い」ということだけが一人歩きして、とにかく何でも「配列は速い!配列は速い!配列!配列ぅ!」って言われてます。 ちょっとやってみましょうか。まずは単純に、データを探す操作から。A列に200,000個の名前が入っています。この中から"田中"を探して、該当するB列の数値を取得します。ちなみに"田中"は一番下のセルA200000にあります。 Sub

  • エクセルExcel大事典 マクロVBAワークシート関数入門応用使い方講座

    ■ エクセルVBA超入門 ・9ステップで"Hello World!" からオブジェクト指向まで! 1. "Hello World!"を表示しよう 2. 基はデータの入出力 3. 繰り返し処理 4. シートで簡易データベース 5. 名前をつけよう 6. 構造化プログラムに挑戦 7. 構造体を使ってみよう 8. フォームを使ってみよう 9. オブジェクト指向に挑戦 ■ エクセルVBA中級編 ・VBAでいろんなテクニック 変数・関数のスコープ 引数の参照方法を明示 配列の中身を一気に複写 識別子がよいコードを作る データ定義型をもっと知ろう 定数と列挙型を活用しよう エラー処理の重要性1 エラー処理の重要性2 いろいろな条件分岐 いろいろな繰り返し処理 演算子について知ろう 文字列操作 連結 変換 置換 文字列操作 検索 比較 書式 日付操作関数を知ろう 数値操作・評価・その他関数 並び替えソ

  • SpinNet : Notice of Service Termination

    ご訪問いただいたお客様へのお知らせ Information for customers visiting this Web site from SpinNet アクセスいただいたWebサービスは提供を終了いたしました。 長年にわたり、多くの皆様にご利用いただきましたことを心よりお礼申し上げます。 SpinNetトップページへ The Web service you are trying to access has been terminated. We would like to thank all of you for your patronage over the years. Go to the SpinNet

    tadaemon
    tadaemon 2013/11/21
    “・RowSource:ComboBoxコントロールのソースを設定します。”
  • SpinNet : Notice of Service Termination

    ご訪問いただいたお客様へのお知らせ Information for customers visiting this Web site from SpinNet アクセスいただいたWebサービスは提供を終了いたしました。 長年にわたり、多くの皆様にご利用いただきましたことを心よりお礼申し上げます。 SpinNetトップページへ The Web service you are trying to access has been terminated. We would like to thank all of you for your patronage over the years. Go to the SpinNet