![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
No.2ベストアンサー
- 回答日時:
>今回はCSVファイルを読み込んでその時に自動的にイニシャルを
>ふりたいと思ったので自動的にやってみたいのです
VBAの場合です
--------------------------
Sub TEST()
l = 1
Do While Cells(l, 1) <> ""
sei = Initial(Left(Cells(l, 1), 1))
mei = Initial(Left(Cells(l, 2), 1))
Cells(l, 3) = sei & "." & mei
l = l + 1
Loop
End Sub
---------------
Function Initial(x)
Select Case x
Case "ア", "イ", "ウ", "エ", "オ"
Initial = "A"
Case "カ", "キ", "ク", "ケ", "コ"
Initial = "K"
Case "サ", "シ", "ス", "セ", "ソ"
Initial = "S"
Case "タ", "チ", "ツ", "テ", "ト"
Initial = "T"
Case "ナ", "ニ", "ヌ", "ネ", "ノ"
Initial = "N"
Case "ハ", "ヒ", "フ", "ヘ", "ホ"
Initial = "H"
Case "マ", "ミ", "ム", "メ", "モ"
Initial = "M"
Case "ヤ", "ユ", "ヨ"
Initial = "Y"
Case "ラ", "リ", "ル", "レ", "ロ"
Initial = "R"
Case "ワ", "ヲ"
Initial = "W"
Case Else
Initial = ""
End Select
End Function
No.3
- 回答日時:
こんにちは。
以下は、チは、T となっていますが、C ということもあります。その場合は、以下のリストの中を数えて、28番目の 'T' を変更してください。ユーザー定義関数のみでも、使用可能です。
例:=InitialCap(A1,B1) 逆さにする場合は、
=InitialCap(A1,B1,True) とすれば、逆さになります。もちろん、セルで逆さにしても良いです。これは、マクロのためにあります。
標準モジュールに設定してください。
データの範囲のセルに、マウスカーソルを置いて、マクロ(HenKanInital)を実行してください。
ショートカットなどに設定すると便利かもしれません。なお、リストは、掲示板アップロード用で、本来は、"& _" は、なくても、一行でも支障はありません。そのほうが読みやすいかもしれません。
'--------------------------------------------------------------------------
'Option Explicit
Private Const HIRA As String = _
"ア,イ,ウ,エ,オ,カ,ガ,キ,ギ,ク,グ,ケ,ゲ,コ,ゴ," & _
"サ,ザ,シ,ジ,ス,ズ,セ,ゼ,ソ,ゾ,タ,ダ,チ,ヂ,ツ,ヅ," & _
"テ,デ,ト,ド,ナ,ニ,ヌ,ネ,ノ,ハ,バ,パ,ヒ,ビ,ピ,フ,ブ," & _
"プ,ヘ,ベ,ペ,ホ,ボ,ポ,マ,ミ,ム,メ,モ,ヤ,ユ,ヨ,ラ,リ,ル," & _
"レ,ロ,ワ,ヰ,ヱ,ヲ,ン,ヴ"
Private Const ALPHA As String = _
"A,I,U,E,O,K,G,K,G,K,G,K,G,K,G,S,Z,S,J,S,Z,S,Z,S,Z," & _
"T,D,T,J,T,D,T,D,T,D,N,N,N,N,N,H,B,P,H,B,P,F,B,P,H,B," & _
"P,H,B,P,M,M,M,M,M,Y,Y,Y,R,R,R,R,R,W,W,W,W,N,V"
Private Hiras As Variant
Private Alphas As Variant
Public Function InitialCap(Str1 As Range, Str2 As Range, Optional Reversed As Boolean)
'イニシャルを出力する関数
Dim i As Variant
Dim j As Variant
Dim oAlp1 As String
Dim oAlp2 As String
Hiras = Split(HIRA, ",")
Alphas = Split(ALPHA, ",")
If VarType(Str1.Value) = vbString Then
Str1 = StrConv(Str1, vbWide + vbKatakana)
On Error Resume Next
i = Empty
i = WorksheetFunction.Match(Left$(Str1, 1), Hiras, 0)
On Error GoTo 0
If i > 0 Then
oAlp1 = Alphas(i - 1) & "."
End If
End If
If VarType(Str2.Value) = vbString Then
Str2 = StrConv(Str2, vbWide + vbKatakana)
On Error Resume Next
j = Empty
j = WorksheetFunction.Match(Left$(Str2, 1), Hiras, 0)
On Error GoTo 0
If j > 0 Then
oAlp2 = Alphas(j - 1) & "."
End If
End If
If Reversed Then
InitialCap = oAlp2 & oAlp1
Else
InitialCap = oAlp1 & oAlp2
End If
End Function
Sub HenKanInital()
'実行マクロ
Dim rng As Range
Dim c As Range
Const MCOL As Integer = 3 '出力列
If TypeName(Selection) <> "Range" Then Exit Sub
Set rng = Selection.CurrentRegion.Columns(1).Resize(, 2)
If WorksheetFunction.CountA(rng) < 2 Then MsgBox "場所が違いませんか?": Exit Sub
Application.ScreenUpdating = False
If rng.Columns.Count <> 2 Then MsgBox "2列でありません。2列を選択してください": Exit Sub
For Each c In rng.Columns(1).Cells
c.Offset(, MCOL - 1).Value = InitialCap(c, c.Offset(, 1))
Next c
Application.ScreenUpdating = True
End Sub
No.1
- 回答日時:
それなら、テーブルとVLOOKUPでも出来ますよ
C1=VLOOKUP(LEFT(A1,1),E1:F10,2) & "." & VLOOKUP(LEFT(B1,1),E1:F10,2)
テーブルは
E1="ア"
F1="A"
E2="カ"
E2="K"
と言う具合に E3~F10 に続きを記入
この回答へのお礼
お礼日時:2007/02/28 11:45
早速のご回答ありがとうございます。
なるほどこれだと可能ですね。
今回はCSVファイルを読み込んでその時に自動的にイニシャルを
ふりたいと思ったので自動的にやってみたいのです。
できるでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 現在のセルの文字列を右隣のセルの名前にするマクロをつくりたい 4 2023/01/12 09:01
- Visual Basic(VBA) Excel VBA 同じ名前のフォルダがあれば作成したブックを格納するマクロをつくりたい 2 2023/01/16 16:19
- Visual Basic(VBA) VBA アドインについて お詳しい方 ご教授をお願いします。 相談事項 現在以下の対応を実施した所、 1 2022/11/02 16:53
- Excel(エクセル) ランダムで四択の問題を作る場合にvbaで何を学べばいいでしょうか。 1 2022/04/14 16:45
- その他(プログラミング・Web制作) Pythonでexcelのvbaを作成、実行する方法について Pythonで表の自動集計プログラムを 3 2022/07/09 09:58
- Excel(エクセル) PDFファイルに日付を名前にして保存したい。 エクセル2019でワークシートに請求書のフォームを作り 2 2023/05/27 11:13
- Excel(エクセル) エクセル VBAでBook モジュールのプロシージァ(コード)に除外シートを設定したい 1 2023/01/11 15:53
- Visual Basic(VBA) vba マクロでファイル名をつけて保存するやり方を教えてください。 マクロで作成したエクセルファイル 2 2023/01/31 18:22
- Excel(エクセル) 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】 1 2022/06/16 16:16
- Visual Basic(VBA) Excel VBA シートを追加後に余分なシートを削除する、の意味 21 2022/05/19 22:46
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルのマクロについて教え...
-
Excel・Word リサーチ機能を無...
-
特定のPCだけ動作しないVBAマク...
-
エクセルで特定の列が0表示の場...
-
VBAコードについて教えてくださ...
-
Excel マクロ VBA プロシー...
-
一つのTeratermのマクロで複数...
-
メッセージボックスのOKボタ...
-
Excel VBAからAccessマクロを実...
-
エクセルに張り付けた写真のフ...
-
ExcelのVBA。public変数の値が...
-
マクロの記録を使用したマクロ...
-
マクロ実行時、ユーザーフォー...
-
マクロで空白セルを詰めて別シ...
-
Excel_マクロ_現在開いているシ...
-
複数ページあるPDFファイル内の...
-
TERA TERMを隠す方法
-
コマンドボタンに二回目のマク...
-
特定文字のある行の前に空白行...
-
WORD テキストボックスを全ペ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel・Word リサーチ機能を無...
-
特定のPCだけ動作しないVBAマク...
-
エクセルで特定の列が0表示の場...
-
Excel マクロ VBA プロシー...
-
メッセージボックスのOKボタ...
-
一つのTeratermのマクロで複数...
-
ExcelのVBA。public変数の値が...
-
Excel VBAからAccessマクロを実...
-
TERA TERMを隠す方法
-
ExcelVBAでPDFを閉じるソース
-
エクセルに張り付けた写真のフ...
-
EXCELのVBAでRange("A1:C4")を...
-
エクセルで別のセルにあるふり...
-
ソース内の行末に\\
-
マクロ実行時、ユーザーフォー...
-
特定文字のある行の前に空白行...
-
エクセルVBA
-
wordを起動した際に特定のペー...
-
マクロの記録を使用したマクロ...
-
ダブルクリックで貼り付けた画...
おすすめ情報