VBA

【VBA】セルに数式を代入する - formulaプロパティ

VBAでセルに数式を代入したい場合、単純に数式(「=」で始まる文字列)を代入すれば可能です。

特にここでformulaプロパティを使用する必要はありません。

 

1
Range("A4") = "=SUM(A1:A3)"

 

式自体を取り出したい場合はformulaプロパティを使用します。

 

【VBA】ソース内のサブルーチンの呼び出しを見やすくする - Call ステートメント

一つのプロシージャに全ての処理を書こうとすると、ソースが非常に見づらくなり、デバックも大変になります。

そこで、処理ごとにサブルーチンに分けて書くことが求められますが、サブルーチンの呼び出しなのか、VBAの命令なのか判別しにくい時があります。
このような問題を回避するために、サブルーチンの呼び出しにCall ステートメントを使って行うようにすれば、解決することができます。

【VBA】不安定なVBAプログラムを安定化させる - オブジェクト型変数の開放

Excel VBA等で、少量のデータでは特に問題は起きないけれども、大量データを動作させると何故か途中で止まってしまうなど、プログラムが安定して動作しないことがあります。

このような場合、オブジェクト型関数が悪さをしている可能性が高いので、プログラム中で使わなくなったオブジェクト型変数は開放するよう、なるべくプログラムでそのように記述しましょう。

Dim A as Object

オブジェクト変数はこのように宣言し、使用の際には以下の様な記述がなされます。

Set A = Range("A1") 

使い終わったら以下のように開放するようにしましょう。

【VBA】画面表示を省略し、VBAの処理速度を上げる - Application.ScreenUpdating

データの並び替え、削除など、セルに対する処理途中の経過がVBA実行時にExcel上に表示されますが、これによってかなりマシンパワーを消費しています。
処理途中の経過を敢えて見せる必要が無いのであれば、画面表示は省略すべきです。

以下のコードを処理の始めに記述します。

Application.ScreenUpdating = false

 

これにより、画面処理が省略され、プログラムの処理速度が上がります。セル操作による画面表示は特に負荷の高い部分ですので、プログラムの内容にもよりますが、半分以上処理時間を短縮できることもあります。

プログラムの終わりには以下の記述をし、画面表示が行われるようにしてください。

VBAマクロの開発・制作代行

  ・毎日、単純な作業で時間を取られてしまっている ・単純で量が多いけれど、正確性が求められる ・いつも決まった手順でデータを作成するのだけれども、手順の数が多くて大変 会社のPC上での業務でこのようなお悩みはありませんか? こういった作業の手間やかかる時間を劇的に改善してくれるのが「VBAマクロ」です。 VBAマクロとは、作業の手順をプログラムに記述し、作業を自動化してくれる仕組みです。 弊社では、このVBAマクロの開発・制作代行を承っています。     VBAマクロは以下のソフトで使用可能です。 ・Microsoft Excel ・Microsoft Word ・Microsoft Outlook ・Microsoft Access   これらのソフト上で行う定型的な作業はほとんどVBAマクロで置き換えることが可能です。また、Excel+InternetExplorerのようにMicrosoft製品であれば、上記のソフトと連携できるものもあります。     では、実際にどんなことができるかお見せいたしましょう。 楽天商品Webクロール(xlsファイル)   こちらのプログラムを実行すると以下のことが自動でできてしまいます。所謂、Webスクレイピングというものです。これだけでもマクロの強力な一面を実感できるのではないでしょうか。 InternetExplorerを自動で立ち上げ、楽天の店舗を開く 店舗ページで検索ワードを入れ、商品の検索結果を取得 商品の検索結果から、商品名、商品画像等の情報をPCに保存   次にマクロでどのような作業が軽減されるでしょうか。実際に弊社で行った業務改善例を見てみましょう。   ・社員日報 【VBA導入前】 社員数百名の日報の収集と編集を全て人の手で行っており、事務員二人が一日がかりの作業となってしまっていた。 【VBA導入以後】 収集と編集の大部分を自動化、事務員一人で1時間でできるように。また作業のミスもほとんど無くなった。   ・オンラインショップの商品登録 【VBA導入以前】 商品データを手作業でWeb画面上でコピー&ペースト。商品情報の登録・更新・削除が全て手作業でなおかつ商品点数が膨大のため、スタッフの時間が大きく取られていた。 【VBA導入以後】 CSVにまとめられた商品データを元に、商品情報の登録・更新・削除が一括で行われる。作業時間の短縮は勿論、ミスの減少、そして商品情報の更新頻度(特に在庫情報)が高くなるため、より魅力あるサイトへと変貌することができた。   などなど、非効率な部分を改善し、日々の単純な業務を背負わされている方にとってはまさに「魔法のような」実感が得られることと思います。 以上のように普段の業務をVBAマクロの開発で改善なさりたいとお考えでしたら、是非弊社に問い合わせください。 そもそも自社の業務にVBAマクロが使えるのかといったお問い合わせでも大歓迎です。 尚、弊社は名古屋にありますが、全国どちらからでも対応は可能でございます。 他のVBA開発を行う会社や個人事業主に対して、弊社が持つ強みは以下となります。 高いヒヤリングスキルでお客様が必要とする機能を汲み取り、ベストマッチなシステムをデザインする(ここが一番重要です!) 多くの実績に裏付けられた高い技術力 プロトタイプ(原型)を作成、お客様にレビューいただく事でお客様のイメージに近い形に近づける、プロトタイピングと呼ばれる開発手法を採用 問い合わせに対する迅速な回答と対応 見積金額=請求金額、お客様側で仕様の変更が発生しない限り追加金額は発生しません 納期厳守 秘密保持契約の締結が可能     料金の目安は以下となっております。 金額(税込み) 内容 31,500円〜 VBAマクロのプログラム基本部分の作成 18,900円 基本設計(業務をどのようにに置き換えるか、プログラムの基本デザイン等) 42,000円 自動登録、スクレイピング等、InternetExplorerとの連携(サイト毎) 14,700円 リッチなユーザインターフェース画面(画面毎) 52,500円 外部プログラム(InternetExplorer以外)との連携 19,900円 ファイル・フォルダ操作 31,000円 メール送信機能(Outlookを使わない場合) 26,250円 DB連携(DB毎※テーブルの数毎ではありません)   計算方法の例として、オンラインショップの商品登録プログラム開発の場合 基本部分 (31,500円)+ 基本設計(18,900円) + IE連携(52,500円)       = 102,900円(税込み)となります。 ほぼ間違いなくお値段以上の見返りは得られることと考えます。 経営者や部署の責任者、ご担当者の方は是非この機会にご決断ください。   お見積もり・ご発注のご連絡は以下まで。  

【VBAテクニック】複数の文字種で文字列を分割する方法

VBAにはSplit関数が用意されており、これは指定した文字で文字列を分割、配列に格納してくれる便利な機能です。

 

※Split関数の書式

Split (文字列, 区切り文字)

 

但し、ここで指定できる区切り文字は1種類かつ長さが1文字までという制限があります。

では、2種類以上の文字や長さが2以上の文字列で分割したい場合はどうしたら良いでしょうか?

 

一見、難しそうに見えますが、処理は非常に簡単で、Replace関数を使います。

Replace関数は以下の様に指定した文字列内の単語を別の単語に置き換えます。

※Replace関数の書式(簡易型)

事例集

業務効率化・業務改革   ・大手通信企業における、サードベンダーに対する工数算定システムの構築 ・自動車ディーラーにおける、セールスマンのKPIシステム構築 ・大手たばこメーカーにおけるSFAの運用支援 ・印刷メーカーにおけるWeb統合認証基盤の運用支援 ・ヘルパー管理システムの構築 ・Web通信販売における、商品一括登録や商品情報の自動取得システムの構築 ・教室における自動予約システムの導入     マーケティング   ・通販サイトの売り上げ向上施策 ・機器メーカーにおけるWeb販売戦略立案     Webサイト/サービス構築   ・Drupalによる企業サイト構築 ・芸能人ブログランキング【携帯電話用Webサービス】 ・269ch【携帯電話用Webサービス】 ・News269【携帯電話用Webサービス】     インフラ構築・運用   ・APサーバ10台+DBサーバ5台+負荷分散システムによる中規模Webサービス運用 ・50人規模の中小企業における社内ネットワーク構築(ファイルサーバ、メールサーバ、DMZ)

サービス内容

Webアプリケーション作成   デザイン、DB設計、設計書の作成、テスト、全てお任せいただくことが可能です。※1 単にお客様の要求を形にするだけでなく、SEO、口コミ、宣伝戦略等、Webプロモーションを考慮した、マーケティングの観点から”売れる”システムを目指します。 LVSによる負荷分散装置、APサーバ20台、DBサーバ10台、こういった多ユーザが利用する想定でのWebシステムの運用実績がありますので、大規模へのサービスへ成長させる際、どのようにシステムを拡充させていくか、こういった知識と実現するためのスキルを持っております。 ユーザが楽しめる機能、ユーザを囲い込む為の機能、ユーザを増やすための仕組み作り、こういったアイデアを出していく部分には強みがあります。 ※1 社内リソースの状況によっては、一部外注する場合もございます。但しそのディレクションは当社で行います。     Webプロモーション   実際に自社でコスメの通販サイトを運営し、わずか3ヶ月で黒字化させた経験がございます。そこで培ったノウハウをお客様に全てお伝えします。 効果的なSEO、かけた金額より大きなリターンが得られるSEM、これらについてお客様視点で提案することができます。リスティング広告については弊社で代行することも可能でございます。 メルマガ、YouTube、Twitter、FaceBook等、様々なWebメディアを用いた営業戦略を立案します。 主に対象はWeb通販サイトとなりますが、インターネットを営業ツールとして活用できていないとお考えの会社様の相談も歓迎いたします。     業務改善/効率化   業務フローや、社内システムを見直し、作業工数の低減や作業の見える化など、経営を改善させる為の方策を打ちます。 業務そのもの改善については、お客様へのインタビューを通して、コンサルティングを行い、実際にお客様の担当の方と一緒に仕事を進めて行くことになります。システム化できる部分は、業務パッケージ、もしくは各種言語を用いたプログラム、VBAを利用した作業の自動化や、サーバサイドプログラムの整備などで、実現します。 実際に業務のコンサルティングを行う人間は、かつて大手外資系コンサルティングファームに在籍し、多くの一流企業で仕事を行った経験を持つ弊社のコンサルタントが行います。     企業・事業者様向けホームページ作成   現時点でホームページを持たない、もしくはホームページのリニューアルをお考えの企業様、事業者様が対象となります。 デザイン、サポート、カスタマイズ、サーバ費用、全て込みで月額固定にて承ります(詳細な金額はお問い合せくださいませ)。初期導入費用も必要ございません。 CMS(コンテンツマネジメント)への置き換えを行います。これにより、お客様側でコンテンツをブラウザ上から追加・更新可能となります。 CMSパッケージはDrupalというオープンソースを利用します。Drupalはアメリカでは政府機関(ex.NASA)でも使用されているほど高い信頼性や拡張性を持つCMSです。 ソーシャルメディア(Twitter、SNS等)との連携が可能です。 ブログの設置、SNS機能、ユーザ会員登録等、柔軟な機能追加に対応致します。 SEOに配慮したページ設計を行います。 デザインテンプレートを使用することで、高級感のあるデザインに仕上げます。     社内インフラ整備   社内ネットワークインフラの構築を行います。使用するサーバは基本的にオープンソースのものを利用しますので、安価に構築することが可能です。 ファイルサーバはRAIDやバックアップの設定により、高い信頼性を実現します。 VPNにより、違う拠点間同士を同じLANで接続します。     各種プログラム作成   プログラム作成を行います。仮にプログラムの要件がきっちり固まっていなくても、ヒアリングを通して、形にすることができます。 弊社で対応可能な言語は、JAVA、C#、Python、Ruby、PHP、Perl、VB、VBA、JAVA Script、COBOL、ABAPとなります。