VBAの備忘メモ(配列の宣言)
久しぶりにVBA
触ったら配列の宣言方法を忘れたのでメモ。
Variantってなかなか使わない言葉だったのですっかり忘れてました。
'数は要素数かと思いきやインデックスの最大数っぽい。1つ多いとEmpty値になる=空白? Dim noUseCharacter(6) As Variant
ついでにワークシート名の文字チェックプロシージャー
Arrayを使うと要素数を最初に宣言しなくていいんだね。
探せばどこにでもありそうだけど。
Function chkSheetName(ByRef sheetName As String) As Boolean Dim noUseCharacter As Variant Dim str As Variant Const MaxNameSize As Integer = 31 Dim errFlg As Boolean noUseCharacter = Array(":", "\", "/", "?", "*", "[", "]") '桁数チェック If Len(sheetName) > MaxNameSize Then errFlg = True Else '使用できない文字チェック For Each str In noUseCharacter If InStr(sheetName, str) > 0 Then errFlg = True Exit For End If Next str End If chkSheetName = errFlg End Function
PLSQLでパッケージになくてBody部にあるfunctionの場合
同一パッケージ内はfunctionが使えるけど、他のパッケージからは呼べないんだね。
知らなかった。
Javaでいうprivateメソッドみたいな感じなのかな。
仕方なくパッケージに追加したら呼べるようになりました。
SQLDeveloperからプロシージャーを実行する
JavaからPL/SQLを呼んで結果を返す処理があって、 呼び出し方が独自処理だったのでホントに想定の処理しているかよくわからなかったので
そもそも結果って何が返ってる?と確認したいときのメモ。
※SQLDeveloper上で実施する前提です。 タイトルにプロシージャって書いたけど、正確にはfunctionの呼び出しになるのかも。(すいません
select function(args) from DUAL;
例)
select hoge('foo',0) from DUAL;
追記
・プロシージャを呼び出したい場合はcallを使う
call procedure(args);
例)
call hoge('foo',0);
・Functionのパッケージから指定したい場合
select PACKAGE.Function(args) from DUAL;
例)
select bar.hoge('foo',0) from DUAL;
Gtk-WARNING **: cannot open display: で怒られた
コンソール越しに言われても。
そんなときはこのコマンド
unset SSH_ASKPASS
参考:
コンソール越しに git コマンドから Gtk-WARNING **: cannot open display と怒られた時 - Qiita
git submodule
submoduleを別ブランチに追加する場合
- When you command ‘git clone’
.gitmodules
ファイルがあれば、そこに記述されているrepositoryをsubmoduleとして取り込む。
- When you command manually ‘submodule add’
手動でsubmoduleを追加する場合は以下のコマンドで追加する。
$ git submodule add url/xxx.git [フォルダ名]
(取り込んだ先から)submoduleを編集する場合
取り込んだsubmoduleディレクトリに移動し、別ブランチを作成してcommit & pushする。
- example
$ cd common $ git checkout -b work
修正したらadd & commit & push
$ git commit -m "common update" $ git push origin work
repositoryに修正内容を反映し、取り込んでいる各repositoryを更新する。
submoduleが最新になった場合
下記のコマンドで取り込む。
git submodule foreach git pull origin master
submoduleを削除する場合
取り込んだsubmoduleを削除する場合
- example (hogeがsubmoduleである場合)
git submodule deinit hoge git rm hoge
json2csvめも
Express でアプリを作ったときにCSVをDLする機能があったのでjson2csvを使ってみたら思いのほか楽だった。
model.js
const jsonbody ={ { "key1":"value", "key2":1, "key3":"2017-05-22", }, { "key1":"value2", "key2":2, "key3":"2017-05-23", }, }; const csvdata = json2csv({ data: jsonbody, fields: Object.keys(jsonbody[0]) });
routes.js
res.setHeader('Content-Type', 'text/csv; charset=shift-jis'); res.setHeader('Content-Disposition', `attachment; filename=download.csv`); res.write(csvdata); res.end();