VBA

EXCEL2007のマクロの信頼できる場所

http://soumukouboo.blog91.fc2.com/blog-entry-107.html マクロ有効ブックを信頼できる場所に保存するとこのようなメッセージが表示されないで直ぐに使えるようになります。信頼できる場所を追加するには、Officeボタン→Excelのオプション→セキュリティセン…

UserForm

ツールバーでなくユーザーフォームでやるんでもいいかもしれない。使ったことなかったが。VBEでGUIでボタンぺたぺた配置できるみたいなので、見た目の調整は楽そうだ。 まてよ。それだと、新しいシートを作って、そこにボタンぺたぺたはっても一緒か。そもそ…

ツールバー

ツールバーの作り方 http://officetanaka.net/excel/vba/tips/tips54.htm コマンドバーにテキストを表示 http://www.moug.net/tech/exvba/0080022.htm 今までEXCELシート上にボタンコントロールを貼り付けて、そのボタンを押して操作をしていた。しかし、複…

改行コードはCR/LF

VBA

http://members3.jcom.home.ne.jp/daruma_kyo/info/line_feed_code.html#evadeLine Inputで読むときに、テキストファイルの改行コードがLFだとそのままじゃ1行読み込みできない。

正直最近まで知らなかったこと

VBA

プロシージャの引数は Name:=Value という書き方ができるということ(←これを知らなかったのはなかなかすごいと思う) 行末の _ は改行記号であること 構造体やクラスもつくれること。Typeやクラスモジュール コレクションの概念。WorkbookとWorkbooksとか 標…

F5

VBA

最近知ったVBEのすごい機能。 引数なしのプロシージャで、F5(実行→SUB/ユーザーフォームの実行)でプロシージャを実行できる。今まで、わざわざコマンドボタンとか作って実行してた。すごい人生の無駄だった。VBAははじめて触ったのが1年くらい前だったか。た…

Dim range As Range

VBA

久々にVBAプログラム。 VBEの大文字小文字の自動変換機能ではまった。 以前、Rangeと書いていたものが、何度直してもrange(先頭小文字)になる。全置換してもrangeになる。なんじゃこりゃー!?一度憶えた悪いクセは一生なおらんみたなもんかー?どこに記憶し…

値だけコピー

VBA

http://www.happy2-island.com/excelsmile/smile03/capter00505.shtml Range("A1").Copy Range("A2").PasteSpecial Paste:=xlPasteValues

SendKeys

VBA

SendKeys メソッド http://homepage2.nifty.com/pasocon/nyumon/wshshell/sendkeys.html キー・ストロークの送信とプログラムのアクティベーション http://www.atmarkit.co.jp/fwin2k/operation/wsh05/wsh05_04.html 複数の SendKeys ステートメントが実行さ…

VBAからコマンドプロンプト

VBA

他のプログラムの起動(Shell関数) http://homepage2.nifty.com/kasayan/vba/vba3.htm DOS コマンドの実行結果を取得する方法 http://www.f3.dion.ne.jp/~element/msaccess/AcTipsGetDosResult.html VBA で DOS コマンドを使おうなんて発想は、明らかに時流…

置換

VBA

Private Function CreateRegRxp() As Object Set re = CreateObject("VBScript.RegExp") re.Pattern = "(.)" re.Global = True re.Pattern = "=RSS\|\'....\..{1,2}\'\!" 's1 = "=RSS|'4653.Q'!現在値" 'wk = re.Replace(s1, "RSS|'1234.T!") 'MsgBox wk Set…

自ブック

VBA

ThisWorkbook 自ブック ActiveWorkbook アクティブなブック

条件付書式

VBA

http://www.eurus.dti.ne.jp/~yoneyama/Excel/jyo-syo.html 100以上なら背景赤とか簡単にできる。 VBAじゃないけど。

タイマー

VBA

ワンショットタイマーはApplication.OnTime でやるらしい。 引数は時刻、コールバックメソッド 5秒後にMyHogeHogeメソッドを実行 Private Sub CommandButtonInit_Click() Application.OnTime (Now + TimeValue("00:00:05")), "Sheet4.MyHogeHoge" End Sub P…

再計算イベント

VBA

ワークブック Workbook_SheetCalculate(ByVal Sh As Object) 引数はたぶんシート シート Worksheet_Calculate() シート内で完結するんであれば、これでよし。 両方定義すると両方呼ばれる

Submit

VBA

submitにsubmitとか名前がついてると、フォームのSubmitメソッドが呼べないので <input type="submit" value="さぶみっと" name="submit">変わりにsubmitという名前の要素をクリックする .elements("submit").Click

IEフレーム操作

VBA

http://www.ken3.org/vba/backno/vba116.html http://www.ken3.org/cgi-bin/bbs/vba/wforum.cgi?mode=allread&pastlog=0002&no=749&page=60&act=past#754フレーム読み込みが完了するまで、待たないフレーム内の要素にアクセスできない。 Do While objIE.Read…

セルに名前をつける

VBA

セル(or範囲)を選択し左上のボックスに名前を入力 Range("name")でそのセルを呼び出せる つけた名前を削除したいときは、挿入→名前から