コンピュータや音楽の事書いてます

EXCEL

コマンド結果貼り付け時、プロパティ名とか調べてselectとかめんどくさいとき

なんでも | ConvertTo-Html | Set-Clipboard をつければ良い。 一発でクリップボードに入り、Excelに貼り付ければ勝手に表になる。 あとは要らない列を消すだけ。 ls | ConvertTo-Html | Set-Clipboard Get-Process a* | ConvertTo-Html | Set-Clipboard Get…

google spreadsheets をダウンロードせずにExcelに読み込む

ワンタッチ更新 google spreadsheets をExcel形式でダウンロードすれば当然Excelで開けるが、元データが更新されたらまたダウンロードしなければならない。Excelには元データが更新されたらワンタッチで更新出来る機能があるが良く使われるのは DBから CSVな…

配列を一括でExcelに書き込むとき、規則がたくさんある

Range型に代入でいっぺんに書き込める配列の条件: 縦,横の要素数が1で始まっている ジャグド配列ではなく、Object[,]型 .Range("A:H") とかだと遅くなるので、きっちり終わりの範囲を示す 要素指定順は[row, column] 下記はlsコマンドの出力から各プロパテ…

Excel操作のテンプレ

準備 using namespace Microsoft.Office.Interop.Excel [Reflection.Assembly]::LoadWithPartialName("Microsoft.Office.Interop.Excel") これは[Microsoft.Office.Interop.Excel.Range] などを [Range] と省略できるメリットがあるが、名前空間にうるさい人…

Excelでwhois

セル数式に =getWhois(A1)とかやるとA1にあるIPアドレスをwhoisしてくれる。 webサーバのアクセスログを解析するときとか。 whoisの出力フォーマットは各レジストラ・ドメイン毎に違うので、なるべく必要な情報が取得出来るように正規表現で抜き出す。 実行…

ExcelのRangeオブジェクトとstring[,]の相互一括代入

string[,]の大きさは string[,] table = new string[Rowの数, Columnの数]; string[,]からRangeは素直に。 sheet.get_Range("a:b").Value = table; Rangeからstring[,]の場合は、Rangeがdynamic型の為、as演算子?で変換する。 string[,] table = sheet.get_…

ワードパッドの画像をExcelにコピー

ワードパッドしかない環境で仕方なく画面コピーをずらずら沢山とった後で、自分のPCでExcelにコピーしたい。そんなときのWordマクロ。 Excel Object Libraryの参照設定が必要。WordでALT+F11押してからツール→参照設定。 Dim ex As New Excel.Application Co…

ブック内の全角文字を半角に変換する

セルだけでなく、図形などに書かれた文字も。多分できてるはず。カナはやらない。 Option Explicit 'ブック内の全角文字を半角に変換する Sub main() Dim s As Worksheet For Each s In ThisWorkbook.Sheets exec_sheet s Next End Sub Sub exec_sheet(s As …

EXCELでブラウザの様に「戻る」「進む」する

シートがたくさんあるファイルを見てるときに、ALT + →キー、ALT + ←キー で今まで見たシートを見てきた順番に行ったり来たりできる。ALT + F11 を押し、「ThisWorkbook」をダブルクリックし、以下を貼り付ける。 Public sheet_history As New Collection '…