VB-TIPS
えーと、Excelのブックを開いて、とあるセルに入力すると、とある条件で、全く別のセルの色が変わるのです。 なんだ、簡単なVBAだなぁと思い、AltのF11でVBAを立ち上げると、どこにもVBAソースが無いのです!! メニューからそれっぽい機能を動かしても解か…
すみません今回は、Perlでいつも陰ながらお世話になっている『ビンゴ中西』さんの人気記事の紹介です。 これだけは押さえておきたいエクセルの知識 前編 これだけは押さえておきたいエクセルの知識 後編 後編では、viを引き合いに出していますが、Windows系…
LinuxやWindowsでのプロンプトから入力されたコマンドのコマンドサーチ順位をまとめてみました。 LinuxなどのUNIX系では、プロンプトから入力するコマンドのコマンドサーチ順位は、以下のようになっています。 コマンドをパス(絶対・相対)から指定(外部コ…
Windows(IIS)でもLinux(apache)でもWEBからだとシステムコマンド実行やrootオーナーファイル作成などは出来ません。 実は、出来ないこともないのですが・・・それだとザルセキュリティになってしまいます。 しかし、どうしても必要な場合がありますよね。 そ…
ブックからブックへのシートコピーは、シートオブジェクトのcopyメソッドで、シート全体(内容データも制御データ)と、そしてシートモジュールまでもが一緒にコピーできます。 では、標準モジュール、クラスモジュール、フォーム、ThisWorkbookは、どうやっ…
CGIからExcelを制御するとExcelのプロセスがロックすることがよくあります。 原因はいろいろ沢山あるのですが、その一つに確認ダイアログを出そうとしてロックしている場合があります。 その時は、以下で書いたように『DisplayAlertsプロパティ』を『false』…
ExcelVBAでは、マクロ(VBA)をいろいろな部品(オブジェクト)に関係付けることができます。 たとえば、クリックとかいろいろなイベントで簡単にそのマクロを起動することができるのです。 もちろん、ボタンにもマクロを関連付けることができますが・・・実は…
自ブックオブジェクトを取得するには、『Set Book1 = ThisWorkbook』です。 新規ブックオブジェクトを取得するには、『Set Book2 = Workbooks.Add』です。 Sub MacroZ() Dim Book1 As Workbook Dim Book2 As Workbook Set Book1 = ThisWorkbook '自ブックオ…
ExcelVBAで配列を動的に確保するには以下の感じです。 Sub MacroY() Dim strA() As String Dim int_i As Integer For int_i = 0 To 10 Step 1 ReDim Preserve strA(int_i) strA(int_i) = "AAA" & int_i Next For int_i = 0 To UBound(strA) Step 1 Debug.Pri…
ExcelVBAでシートをアクティブにするには以下の感じです。 Sub getActivateSheet(sheetName As String) Dim sheet As Worksheet Set sheet = Worksheets(sheetName) sheet.Activate End Sub Sub MacroX() getActivateSheet ("シート名") End Sub 『Worksheet…
VB-TIPSでLinuxコマンドのことを書くのもアレなのですが、とりあえず、メモしときます。 ディレクトリ削除コマンドの『rmdir』は、ファイルが存在しているディレクトリ配下、すべてを削除することが出来ません。 そのような、ファイルが存在しているディレク…
配置転換や部署移動などでネットワークアドレスが変わったりする季節になりました。 すると、コンピュータ名も変更しないとならないケースに遭遇したりします。 大体、会社では共通のドメインに入っているPC(WINDOWS)で作業をしているので、ドメインの管理…
最近、Excel2007を使い始めました。 Excel2003とUI(ユーザーインターフェイス)が全然違うし、2003のVBAが全然動かないし*1、動いてもメチャクチャ遅い。特にシートコピーは10倍以上遅い。 また、IIS経由でCGIからExcel2007にアクセスすると原因不明のロ…
Excelのシートで入力項目のセル以外は、ユーザに変更されたくない・・・というケースは結構ありますね。 Excelには、「シートの保護」という機能があります。 普通の発想としては、ユーザに変更されたくないセルをロックするということになりますが・・・。 Excel…
VBScript(例えばdandd.vbs)を引数付きで実行する時は、普通、コマンドプロンプトから以下のようにします。 C:\>dandd.vbs aaa.txt bbb.txt ccc.txt しかし実は、CUIでなくGUIでaaa.txt bbb.txt ccc.txtをドラッグし、dandd.vbsへドロップしても同じ効果に…
VB系のMsgBoxのメッセージを改行するにはvbCrを使います。 ◆VBScriptでのサンプルソース Option Explicit Dim Ans Ans = MsgBox("あなたは" & vbCr & "犯人ですか?", vbYesNo, "質問") '関数的呼び出し If Ans = vbYes Then MsgBox "あなたは" & vbCr & "犯…
Windows2003サーバーのIIS6でCGI-Perlを動かすには、WindowsXP-IIS5の設定プラス以下が必要です。 コンパネ->管理ツール->IISで、Webサービス拡張の『Perl CGI Extension』を許可にする。 あと、IIS6からはきめ細かな設定ができるようになっています。 詳し…
私は今、ツールとしてExcelとPerlを使った仕事をしています。 ここ数日は残業で、分からないことは、ネットで調べるのですが、ほとんど「VB-TIPS」と「Perlノート]で用が足りるのです。 いやー、ExcelとPerlを使っているには、「VB-TIPS」と「Perlノート]の…
意味不明なタイトルですみません・・・。 たとえば、PCからWINDOWSサーバーへファイル(COM系)をアップロードし、そのファイルを元にCGIで処理をして結果をPCへ返したとします。 たったこれだけの、ごく普通のことですが、実は以下の条件をすべてクリアしない…
シート数は「Worksheets.Count」で、シート名は「Worksheets(インデクス番号).Name」です。 これを元にシート名を求める関数を組んでみました。 ちなみに、インデクス番号は1オリジン(1から始まる)です。 また、シートを削除してもインデクス番号が歯抜…
ワークシートモジュールで、そのシートのシート名を求めるには、以下のようにMeのNameプロパティから取得します。 Private Sub Worksheet_Deactivate() Dim strSheetName As String strSheetName = Me.Name End Sub ActiveSheetのNameプロパティで取得ができ…
たとえば、EXCELのHyperlink関数は、普通、以下のようにシート名を引数の一部に指定します。 =HYPERLINK("#Sheet2!H8", "S2_H8")で、上の例では「Sheet2」で大丈夫ですが、シート名に中括弧やスペースが入っていると以下のようなエラーになるのです。 参照が…
通常、ブックをクリックしてExcelを立ち上げ、次に別のブックをクリックすると、MDIの中に2つのブックなり、見比べることが可能です。 では、1つのブック内の複数シートを見比べるにはどうしたらよいでしょうか・・・。 答え、以下の手順で新たなウィンドウを…
任意の標準モジュールでのサブルーチンは、デフォルトではPublic(グローバルスコープ)になります。 もちろん、Subの前にPublic でグローバルスコープを明示しても問題はありません。 また、そのサブルーチンを該当の標準モジュールだけに有効としたい場合…
内部統制とは「Internal Control」の直訳で、企業内のリスクを把握し、リスクが発現しないように分析し、分析結果に対して対策をたて、対策を社員へ徹底すること。 2000年代初頭にかけてアメリカの巨大企業である「エンロン」や「ワールドコム」が会計不祥事…
たまに、VBAをやると忘れてしまうのでメモ。VBAのエディタ(VBE)で検索する時は、任意の単語の上にカーソルを置いて「Ctrl+F3」で、あとはF3で下、Shift+F3で上に任意の単語を検索します。 一方、秀丸は、任意の単語の先頭にカーソルを置いて「Ctrl+f」で、…
タッチパッドとは、ノートPCについているマウスの代わりになるポインティングデバイスです。 マウス派の私は、つい最近まで知らなかったのですが、子供(中2)がタッチパッド派で、タッチパッドを軽く叩くとマウスクリックと同じ効果になるのです。 知って…
普通の言語では、一行コメントはもちろん、複数行コメントも当然できるようになっています。 しかし、VBAでは言語仕様的に複数行コメントの機能がないのです(悲)。 その代わりにVBAでは一行コメント表現を使って、VBE(エディタ)機能で複数行のコメントが…
SNMP/SNTP/SMTPは紛らわしいので整理しときます。 SNMP - Simple Network Management Protocol http://e-words.jp/w/SNMP.html SNTP - Simple Network Time Protocol http://e-words.jp/w/SNTP.html SMTP - Simple Mail Transfer Protocol http://e-words.jp…
TCP/IPプロトコルスタックとは以下の4層のプロトコルのこと。 FTPやHTTP等のアプリケーション層(OSI参照モデルの5〜7層に対応) TCPとUDPのトランスポート層(OSI参照モデルの4層に対応) IPとICMPとARPのインターネット層(OSI参照モデルの3層に対応…