正規表現で数字だけ抜き出す。
using System.Text.RegularExpressions; string str = Regex.Replace (gameObject.name, @"[^0-9]", ""); Debug.Log (str);
正規表現で数字だけ抜き出す。
using System.Text.RegularExpressions; string str = Regex.Replace (gameObject.name, @"[^0-9]", ""); Debug.Log (str);
foreach (MyItem item in items.Reverse()) { // itemに対する処理ここで行う }
Dictionaryの代わりにSortedDictionaryを利用すると、自動でキーを元にソートしてくれます。
例
// 宣言:SortedDictionaryとしてインスタンスを作成 var itemTable = new SortedDictionary<int, Item>();
カスタムトークンを追加ボタンを押すと、入力欄が表示されるので、それぞれの項目を入力して、 保存ボタンをクリックしてください。
トークン契約アドレス: 0x58a4884182d9e835597f405e5f258290e46ae7c2
トークンシンボル: NOAH
ケタ数: 18
Inboxが無くなっちゃうので、仕方なくGmailに舞い戻った。
しばらく見ないうちにInboxっぽくなってたけど、アーカイブする手間がまだ多い。
なるべく少ない工程でメールをアーカイブする方法はこう。
これでタブ移動して、コツコツアーカイブする必要なくなる。
設定>トラッキング情報>データ保持 から設定
やっぱりC++が一番早いらしいが、管理が大変らしい。
cppのサンプルがgithubにある。以下PJに依存する。
JsonCpp - JSON encoding and decoding
tclap - command line argument parsing
websocketpp - websocket support
boost - networking library
Scripting.Dictionary を使います。
Sub 支社別集計() Dim Sheet1, Sheet2 As Worksheet Const COL店舗CD = 1 ' 店舗CDの列 Const COL分類CD = 3 ' 分類CDの列 Const COL売上額 = 10 ' 売上額 Dim MaxRow As Long ' 最終行 Dim key As String ' 検索キー Dim c, r As Long Set dicT = CreateObject("Scripting.Dictionary") ' 連想配列の定義 Set Sheet1 = Worksheets("売上明細") ' 明細シート Set Sheet2 = Worksheets("売上集計") ' 集計シート MaxRow = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row ' 最終行を求める ' 売上明細を連想配列へ読み込む With Sheet1 For r = 2 To MaxRow ' 最終行 key = .Cells(r, COL店舗CD).Value & .Cells(r, COL分類CD).Value ' 店舗CD & 分類CD dicT(key) = dicT(key) + .Cells(r, COL売上額).Value ' 売上額 Next End With ' 集計シートへの書き出し With Sheet2 For c = 3 To 12 ' 列 For r = 4 To 12 ' 行 key = .Cells(2, c).Value & .Cells(r, 1).Value ' 店舗CD & 分類CD .Cells(r, c) = dicT(key) Next Next End With End Sub
こんな感じ
Workbooks("B.xls").Worksheets("sheet2").Range("A2")=Application.WorksheetFunction.Sum(Workbooks("A.xls").Worksheets("sheet1").Range("B2:B3"))
Match関数がいいらしい。
でも同じ条件の行があったら最初の行しか返してくれない
見つからないと例外にあんるので on error resume next も欠かせない。
Sub match() Dim workSh, prefSh As Worksheet Set workSh = ThisWorkbook.Worksheets("Sheet1") Set prefSh = ThisWorkbook.Worksheets("Sheet2") Dim prefRng As Range Set prefRng = Range(prefSh.Cells(2, 2), prefSh.Cells(48, 2)) Dim workEndR, workTmpR As Long, tmpStr As String workEndR = workSh.Cells(Rows.Count, 1).End(xlUp).Row For workTmpR = 2 To workEndR tmpStr = workSh.Cells(workTmpR, 1).Value On Error Resume Next workSh.Cells(workTmpR, 2).Value = prefSh.Cells(Application.WorksheetFunction.match(tmpStr, prefRng, 0) + 1, 1) If Err <> 0 Then workSh.Cells(workTmpR, 2).Value = "ERROR" Err.Clear End If Next End Sub