2014年10月1日水曜日

第41回「sqlで文字列から1バイトを取り出す。」

select get_byte(カラム名::bytea, 1) from テーブル名;

第40回「sqlでnullを確認する」

select coalesce(カラム名, 'null') as カラム名_nullchk from テーブル名;

2014年7月9日水曜日

第39回「excel関数 セル値のアドレスからセル値を参照する」

第39回「excel関数 セル値のアドレスからセル値を参照する」です。

  A B C D E F
1 1 a aa aaa   ddd
2   b bb bbb    
3   c cc ccc    
4   d dd ddd    
5 2 e ee eee    






 
F1セルは、
=INDIRECT(ADDRESS(MATCH(1,A:A,0)+3,COLUMN(A1)+3,))

A列の「1」を検索一致したセルから、列+3、行+3のセル値を表示する。












第38回「シェルの一部をリダイレクトする」

第38回「シェルの一部をリダイレクトする」です。

標準出力と標準エラー出力をまとめて、ファイルに出力し、元に戻す。

######
test.sh
######
exec 3>&1 >file 2>&1
command
…
exec 1>&3 2>&1
command

0,1,2,3はファイルディスクリプタを表している。

0,1,2は予約されている。
ファイルディスクリプタ0(標準入力)
ファイルディスクリプタ1(標準出力):画面出力
ファイルディスクリプタ2(標準エラー出力):画面出力

「2>&1」は、「2 の出力先を、1 の出力先と同じものに設定」を表す。

3>&1
ファイルディスクリプタ1(標準出力):画面出力
ファイルディスクリプタ2(標準エラー出力):画面出力
ファイルディスクリプタ3:画面出力★設定

>file
(1>fileと同意味)
ファイルディスクリプタ1(標準出力):file出力★設定
ファイルディスクリプタ2(標準エラー出力):画面出力
ファイルディスクリプタ3:画面出力

2>&1
ファイルディスクリプタ1(標準出力):file出力
ファイルディスクリプタ2(標準エラー出力):file出力★設定
ファイルディスクリプタ3:画面出力

1>&3
ファイルディスクリプタ1(標準出力):画面出力★設定
ファイルディスクリプタ2(標準エラー出力):file出力
ファイルディスクリプタ3:画面出力

2>&1
ファイルディスクリプタ1(標準出力):画面出力
ファイルディスクリプタ2(標準エラー出力):画面出力★設定
ファイルディスクリプタ3:画面出力

2014年6月30日月曜日

第37回「vbaからexcelシート名を確認する」

第37回「vbaからexcelシート名を確認する」です。

Sub SheetChk()
    Dim ws As Worksheet
    For Each ws In Worksheets
        'If ws.Name = "Sheet1" And ws.Visible Then MsgBox ws.Name, vbInformation
        MsgBox ws.Name, vbInformation
    Next ws
End Sub



2014年6月29日日曜日

第36回「batからvbsファイルの先頭に変数を追加する」

第36回「batからvbsファイルの先頭に変数を追加する」です。

バッチファイルからvbsファイルの先頭に変数を追加して複数ファイルを作成します。

#######
test.bat
#######
@echo off
setlocal enabledelayedexpansion

set i=1

for /f  %%l in (test.txt) do (
echo Private Const TMP = "%%l"> dst_!i!.vbs
echo;>> dst_!i!.vbs
type test.vbs >> dst_!i!.vbs

set /a i=!i!+1
)

endlocal

第35回「vbsからvbaマクロを呼び出す」

第35回「vbsからvbaマクロを呼び出す」です。

EXCEL標準モジュールのマクロvbaをvbsから呼び出します。

#######
test.vbs
#######
Dim ExcelApp
Dim ExcelBook
Dim FilePath

FilePath = "C:\work\test.xls"

Set ExcelApp = CreateObject("Excel.Application")
Set ExcelBook = ExcelApp.Workbooks.Open(FilePath)
'ExcelApp.ActiveWorkbook.Worksheets("Sheet1").select
ExcelApp.Visible = True

ExcelApp.Run "test.xls!Macro1()"

'ExcelBook.Close True
'ExcelApp.quit

Set ExcelApp = Nothing
Set ExcelBook = Nothing