筆箱にVBAのカンニングペーパーを入れる係のみすくです。こんにちは。
最近アドインにはまってます。
セル上で右クリックしたときに、
セルの文字列を変換するあれこれなメニューを追加します。
複数セルでもOKです。
これをどうすればアドイン化できるかは、
他のサイト見てください。
'-------------------------------------------------------------------------------- ' 関 数 名:ワークブックオープンイベント ' 処理概要: ' 引 数: ' 返 却 値: '-------------------------------------------------------------------------------- Private Sub Workbook_Open() Dim cmdBar As CommandBar Set cmdBar = Application.CommandBars("Cell") cmdBar.Reset Call setCtrlCellMenue(cmdBar) End Sub '-------------------------------------------------------------------------------- ' 関 数 名:セル操作右クリックメニュー追加 ' 処理概要:セルの右クリックメニューに、「セル操作」を追加する。 ' 引 数:[O]ByRef cmdBar As CommandBar ' 返 却 値:なし '-------------------------------------------------------------------------------- Private Sub setCtrlCellMenue(ByRef cmdBar As CommandBar) Dim cmdBarCtrl As CommandBarControl Set cmdBarCtrl = cmdBar.Controls.Add( _ Type:=msoControlPopup, Temporary:=True) With cmdBarCtrl .Caption = "セル操作" With .Controls.Add .Caption = "小文字⇒大文字" .OnAction = "convToUpperCase" .FaceId = 2476 End With With .Controls.Add .Caption = "大文字⇒小文字" .OnAction = "convToLowerCase" .FaceId = 2476 End With With .Controls.Add .Caption = "半角⇒全角" .OnAction = "convToWide" .FaceId = 2476 .BeginGroup = True End With With .Controls.Add .Caption = "全角⇒半角" .OnAction = "convToNarrow" .FaceId = 2476 End With With .Controls.Add .Caption = "ひらがな⇒カタカナ" .OnAction = "convToKatakana" .FaceId = 2476 .BeginGroup = True End With With .Controls.Add .Caption = "カタカナ⇒ひらがな" .OnAction = "convToHiragana" .FaceId = 2476 End With With .Controls.Add .Caption = "スネーク⇒キャメル" .OnAction = "convToCamel" .FaceId = 2476 .BeginGroup = True End With End With End Sub
Option Explicit '-------------------------------------------------------------------------------- ' 関 数 名:初期処理 ' 処理概要:初期設定を行う ' 引 数:なし ' 返 却 値:なし '-------------------------------------------------------------------------------- Private Sub init() Application.ScreenUpdating = False Application.Calculation = xlCalculationManual Application.StatusBar = "...処理中" End Sub '-------------------------------------------------------------------------------- ' 関 数 名:終期処理 ' 処理概要:後始末 ' 引 数:なし ' 返 却 値:なし '-------------------------------------------------------------------------------- Private Sub term() Application.Calculation = xlCalculationAutomatic Application.ScreenUpdating = True Application.StatusBar = False End Sub '-------------------------------------------------------------------------------- ' 関 数 名:小文字⇒大文字 ' 処理概要:小文字を大文字に変換 ' 引 数:なし ' 返 却 値:なし '-------------------------------------------------------------------------------- Public Sub convToUpperCase() Call StringConvert(vbUpperCase) End Sub '-------------------------------------------------------------------------------- ' 関 数 名:大文字⇒小文字 ' 処理概要:大文字を小文字に変換 ' 引 数:なし ' 返 却 値:なし '-------------------------------------------------------------------------------- Public Sub convToLowerCase() Call StringConvert(vbLowerCase) End Sub '-------------------------------------------------------------------------------- ' 関 数 名:半角⇒全角 ' 処理概要:半角文字を全角文字に変換 ' 引 数:なし ' 返 却 値:なし '-------------------------------------------------------------------------------- Public Sub convToWide() Call StringConvert(vbWide) End Sub '-------------------------------------------------------------------------------- ' 関 数 名:全角⇒半角 ' 処理概要:全角文字を半角文字に変換 ' 引 数:なし ' 返 却 値:なし '-------------------------------------------------------------------------------- Public Sub convToNarrow() Call StringConvert(vbNarrow) End Sub '-------------------------------------------------------------------------------- ' 関 数 名:ひらがな⇒カタカナ ' 処理概要:ひらがなをカタカナに変換 ' 引 数:なし ' 返 却 値:なし '-------------------------------------------------------------------------------- Public Sub convToKatakana() Call StringConvert(vbKatakana) End Sub '-------------------------------------------------------------------------------- ' 関 数 名:カタカナ⇒ひらがな ' 処理概要:カタカナをひらがなに変換 ' 引 数:なし ' 返 却 値:なし '-------------------------------------------------------------------------------- Public Sub convToHiragana() Call StringConvert(vbHiragana) End Sub '-------------------------------------------------------------------------------- ' 関 数 名:スネークケース⇒キャメルケース ' 処理概要:スネークケースをキャメルケースに変換 ' 引 数:なし ' 返 却 値:なし '-------------------------------------------------------------------------------- Public Sub convToCamel() Dim rng As Range Dim elements As Variant Dim camel As String Dim index As Long Call init For Each rng In Selection elements = Split(rng.Value, "_") camel = elements(1) For index = 2 To UBound(buf) camel = camel + StrConv(elements(index), vbProperCase) Next index rng.Value = camel Next rng Call term End Sub '-------------------------------------------------------------------------------- ' 関 数 名:文字変換 ' 処理概要:文字を変換 ' 引 数:なし ' 返 却 値:なし '-------------------------------------------------------------------------------- Private Sub StringConvert(ByVal prm As Long) Dim rng As Range Call init For Each rng In Selection rng.Value = StrConv(rng.Value, prm) Next rng Call term End Sub参考 StrConv 関数msdn
最近のコメント
コメントを残す