vba

VBAでWeb操作!name属性の一覧を取得し表示させる

For i = 0 To objIE.Document.getElementsByName("name").length - 1 Debug.Print "name属性(" & i & ")は :" & objIE.Document.getElementsByName("file_type")(i).outerHTML Next i

実行時エラー'2147467259(80004005)'を解決した

Windows7でAccess2013を使用しています。 IE操作をしようとしたが、以下のエラーがでた。 実行時エラー'2147467259(80004005)': 'Busy'メソッドは失敗しました:'IWebBrowser2"オブジェクト色々ググッたが原因が分からなかった。 すると以下のコードで直った…

任意のテーブルに値を挿入する

実際に挿入しているのはレコードセットオブジェクトのAddNewからUpdateまでが追加している部分。 もし配列などがあれば、配列の件数ForまたはWhileでループして挿入すると良いかもしれない。 そのときはnextしないといけなかったかなぁ…。私も覚えてませんw…

文字列からマッチングする文字列を抽出する

With re '正規表現のパターンをセット .Pattern = "[パターンをここに表記]" 'ラインフィードで区切られた入力文字列を複数行として扱う .Multiline = True '対象文字列の全てから検索をする .Global = True 'パターンを抽出 Set mc = .Execute("検索する文…

ソースコードを文字列として抽出する

まずは設定をします。 ブラウザのロード時間を待つ為に以下の一文を入れる Option Compare Database Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) 1.原理としてはIEを開いて指定したURLを開きます。 2.開いたページのURLを取得して文字…

Access VBAで既存テーブルの値を参照するDLookup関数

VBA

便利!検索してみたんですが、 引数が良くわからなかったので、肉弾戦で試してみた DLookup(出力したいフィールド名, テーブル名, キーとなるフィールド名 = 抽出条件) 使用例 DLookup("食べ物名", "食べ物", "食べ物番号 = '4'")

ユーザ定義型を引数、戻り値に使う方法

vba

Access2007を使用していますが、苦労したぜ! JavaでいうところのBeanみたいな使い方をしたくて 実行すると 「パブリック オブジェクト モジュールで定義されたユーザー定義型に限り、変数に割り当てることができ、実行時バインディングの関数に渡すことがで…

正規表現を使用した文字列の抽出

vba

Set re = CreateObject("VBScript.RegExp") sPtn1 = "ここに正規表現を記載する" With re .Pattern = sPtn1 .Multiline = True .Global = True Set mc = .Execute(desc) desc = mc(0).Value End With

正規表現を使用した文字列の抽出

vba

Set re = CreateObject("VBScript.RegExp") sPtn1 = "ここに正規表現を記載する" With re .Pattern = sPtn1 .Multiline = True .Global = True Set mc = .Execute(desc) desc = mc(0).Value End With

配列から要素を取り出す際のForループの使い方

vba

For i = LBound(temp) To UBound(temp) '制御処理 Next i

VBAで正規表現を使った置換の際、ユーザ参照設定を解決できなかった話。

vba

うぉ〜地味に苦戦した。 地味に苦戦したし。 VBAで正規表現を使用するには RegExpを使用するらしい。 ググってみた! Dim re As RegExp Dim Pattern As String Pattern = "明日.*かもしれない" Set re = New RegExp With re .Pattern = Pattern .Global = Tr…

テーブルからデータを表示するプロシージャ(DAO)

vba

Sub dispData() Dim db As DAO.Database Set db = CurrentDb Dim rs As DAO.Recordset 'テーブルを指定する Set rs = db.OpenRecordset("T01Prefecture") 'レコードの終了までループする Do Until rs.EOF Debug.Print rs.Fields("表示させたいフィールド名")…

SQLの実行

vba

Sub SqlExecute() Dim db As DAO.Database Set db = CurrentDb Dim sql As String sql = "SELECT * FROM T01Prefecture WHERE PREF_CD >= 40" Dim rs As DAO.Recordset Set rs = db.OpenRecordset(sql) Do Until rs.EOF Debug.Print rs.Fields("PREF_CD") & …

ただ楽しんでみた

vba

いきなり空いた時間にサクサクっと 暇つぶし程度にプログラミング。 久々にVBAを使って FIZZBUZZ問題に挑んでみた。 意味は・・・・ まったくもってない!昔、Mさんに教えていただいた、「なべあつ」プログラム。 3の整数と3がつく数字のときにあほになるプ…

変数

今日は雨がすごいのに傘もってきませんでした。 今日は変数を勉強してみます。 よく一般書籍とか新人研修って変数の事を箱っていいます。 そのとおり!!でも僕が入社したとき箱って抽象的過ぎてわからんかったので、 わかりやすく言うと、 数値とか文字列を…

データ型

今回はとにかくデータ型全部書いて見ます。 ソースコードから、任意のやつつかってね。 Dim 変数名 As データ型で定義します。 やってみます Sub DataGata() '数値' Dim a As Integer '-32,768 〜 32,767 Dim b As Long '-2,147,483,648 〜 2,147,483,647 Di…

計算

今回は計算してみます。 以下の内容をします。 ・足す ・引く ・かける ・割る ・余り ・○乗するやってみます。 足します Sub calculationTasu() Dim sum As Integer sum = 5 + 5 MsgBox sum End Sub引きます Sub calculationHiku() Dim sum As Integer sum …

複数のセルに文字列を書く

文字列はValueで書けるというのがわかりました。 でも複数のセルに書くにはどうしたら良いかなぁと考えました。複数書くときにRangeを使用すればいいんだ。 早速書いてみます Sub SelectColmn() Range("A1", "E7").Value = "Range1" Range("A8:E14").Value =…

ソースコード重複の削除

次はソースコードの重複を削除してみます。 例えば次のような用件があったとする。 ・Sheet2を使用する ・B2に"やっぱりVBAってたのしいぜ"と記入 ・横幅がセルから出ないようにする ・縦幅は現在のセルの倍の高さに変更する以前までのdamePGならWorksheets…

シートの幅変更

次は幅の大きさを変更してみた。 文字打って、セルからはみでたらダサいやん。 はみ出したセルの横に文字打ったら、 はみ出した文字列は見えなくなるし、 もちろんエビデンスとしてそんなん提出したら 間違いなく現場で殺される。というわけで変更します。 …

シートの切り替え

今日は任意のシートに文字列を書いてみよう。 だいたいいままでActiveになっているシートにしか文字列を表示できていない。 ということは・・・・ Activeなページを任意で操作できればいいんだ。 それにはどうやらWorksheetsとActivateを使用する。 早速書い…

セルへの書き込み

マクロを使用してセルに書き込むのをもっと掘り下げて詳しくやってみた。 前回ばRangeでセルを指定して、 Valueで指定したセルに文字列を書いたが、 今回はcellを使用してみた。 Sub SelectCellCell() Cells(2, 8).Value = "damePG" End SubどうやらCellsは…

セルを選択する

次はひ一つの任意のセルを選択してみる。 選択するにはselectを使用する。 やってみた。 Sub Select() Worksheets("Sheet1").Range("B1","C12").Select End Subするとカーソルが動いた。 何か範囲指定できないのかな? さっきのRangeをうまく使用してみたら…

VBAで文字列を記入

文字列書きます。 文字列を出力するにはValue = "(任意の文字列)"を使用するようだ。 早速コードをかいてみた Sub SetValue() Worksheets("Sheet1").Range("A1").Value = "だめ" Worksheets("Sheet1").Range("B1").Value = "ダメ" Worksheets("Sheet1").Ra…

VBA入門〜設定編〜

さて今日はExcelマクロに入門します。 マクロってなに〜〜?? マクロとはググッてください。早速Excel開きます。で以下の図のようにします。 それを押して次は以下の図のように操作 するとEditaが出てきた。 どうやらここでコードを入力するみたいだ。 次は…