VBAを書いていると一番嫌になるのが、関数の戻り値記述。
単純に「return 戻り値」って書けばいいんじゃないのか。
なぜ「関数名 = 戻り値」なのか。
関数名が長くなると、読みにくいことこの上ない。
ということで、Emacs上で入力を楽にする手段を考えた。
(defun vb-convert-funcname () "convert 'FuncName' keyword to function name" (interactive) (save-excursion (goto-char (point-min)) (while (re-search-forward "FuncName" nil t) ; FuncNameを見つける (re-search-backward "^Function \\([^\(]+\\)" nil t) ; 直前の関数定義を見つける (let ((func-name (match-string 1))) ; 関数定義から、関数名を取得する (re-search-forward "FuncName" nil t) ; 先ほどのFuncNameを見つける (replace-match func-name) ; FuncNameを関数名で置き換える ))))
VBのコード中、FuncNameと書かれている箇所を、関数名で置き換える。
Function 関数名() FuncName = returnValue End Function
実行すると、以下のように変換される。
Function 関数名() 関数名 = returnValue End Function