お世話になります。

文字変換についてご質問させていただきます。

カナ文字氏名からローマ字氏名については出来ることは確認しておりますが、
ローマ字氏名からカナ文字氏名に変換することは可能でしょうか。
不躾な質問なのですが、何かクラスサンプル等、ヒントがございましたら、ご教示いただければ幸いに存じます。

一応使用言語ついては、C#2005で開発しております。

ご回答いただければ助かります。
宜しくお願い申し上げます。

以上です。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

調べりゃあったりする。


Microsoft Visual Studio International
http://www.microsoft.com/downloads/details.aspx? …

サンプル云々
http://wiki.dobon.net/index.php?.NET%A5%D7%A5%ED …

ローマ字から直でカタカナへのメソッドが無さそうなので
KanaConverteクラスのRomajiToHiragana後、HiraganaToKatakanaにて
    • good
    • 0
この回答へのお礼

ご教示ありがとうございます。
使用できるか試してみたいと思います。

お礼日時:2011/04/26 17:21

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qカタカナをローマジに変換する。

エクセルシートのセルにずらりと縦一列にカタカナの文字列(半角)が入っています。

これを一括でローマ字(半角)に変えたいのですが。

(例)
ニッポン→nippon
アメリカ→amerika
ホンジツハセイテンナリ→honjituhaseitennari

変換テーブルを作り、VBAでそれを読み込ませて、FOR NEXT 処理することを考えています。スマートな方法がありましたらお願いします。

Aベストアンサー

No.1450971 質問:ふりがなをアルファベット化する関数ってありますか?
http://oshiete1.goo.ne.jp/kotaeru.php3?q=1450971
No.818254 質問:かなで書かれた文字をアルファベットに変換できませんか?
http://oshiete1.goo.ne.jp/kotaeru.php3?q=818254
No.792094 質問:Excel住所録でアルファベットのよみがなを出したい。
http://oshiete1.goo.ne.jp/kotaeru.php3?q=792094

などの過去のQ&Aが参考になると思います。


> FOR NEXT 処理することを考えています。

でしたら、VBAで処理する事に挑戦してみる事をお勧めします。
まずは50音で、濁音、促音なんかは別にしてとか。

QC#で漢字→ローマ字を変換

C#で漢字→かなはImmGetConversionListで変換できるのですが、
漢字→ローマ字を変換することは可能でょうか?
(およそで変換できればOKです)

Aベストアンサー

「漢字→かな」が変換できるのであれば、
それに「かな→ローマ字」を自分で作れば
「漢字→ローマ字」になるのでは?

Qローマ字変換アルゴリズムを教えてください。

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

wchar_t t[50][5]={
L"あ",L"い",L"う",L"え",L"お",
L"か",L"き",L"く",L"け",L"こ",
L"さ",L"し",L"す",L"せ",L"そ",
L"た",L"ち",L"つ",L"て",L"と",
L"な",L"に",L"ぬ",L"ね",L"の",
L"は",L"ひ",L"ふ",L"へ",L"ほ",
L"ま",L"み",L"む",L"め",L"も",
L"や",L" ",L"ゆ",L" ",L"よ",
L"わ",L" ",L"を",L" ",L"ん"
};

char t2[50][3]={
"a ","i ","u ","e ","o ",
"ka","ki","ku","ke","ko",
"sa","si","su","se","so",
"ta","ti","tu","te","to",
"na","ni","nu","ne","no",
"ha","hi","hu","he","ho",
"ma","mi","mu","me","mo",
"ya"," ","yu"," ","yo",
"wa"," ","wo"," ","nn"
};

wchar_t *henkan()
{
wchar_t str[150];
char str2[300];
int i=0;
int j;
scanf("%s",&str2);

while(str2[i])
{
for(j=0;j<50;j++)
{
if(strcmp(str2,t2[j])==0)
{
str[i]=t[j];
str[i+1]='\0';
}
}
i+=2;
}

printf("入力された文字は%sです。\n",str);

return str;
}


int main(void)
{
wchar_t str[1000];
while(1)
{
str=henkan();
}
return 0;

}
ローマ字から、ひらがなに変換するアルゴリズムを考えているのですが、
なかなかうまくいきません。このソースコードはコンパイルもできませんでした。
どうすれば、うまくいきますでしょうか?

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

wchar_t t[50][5]={
L"あ",L"い",L"う",L"え",L"お",
L"か",L"き",L"く",L"け",L"こ",
L"さ",L"し",L"す",L"せ",L"そ",
L"た",L"ち",L"つ",L"て",L"と",
L"な",L"に",L"ぬ",L"ね",L"の",
L"は",L"ひ",L"ふ",L"へ",L"ほ",
L"ま",L"み",L"む",L"め",L"も",
L"や",L" ",L"ゆ",L" ",L"よ",
L"わ",L" ",L"を",L" ",L"ん"
};

char t2[50][3]={
"a ","i ","u ","e ","o ",
"ka","ki","ku"...続きを読む

Aベストアンサー

自分の環境で scanf("%s",&str2); では
"a i u e o " と入力してもstrには"a"しか入らない。
strcmpの使い方、意図するものと違ってるはずだし

とりあえず
while(str2[i])
{
 for(j=0;j<50;j++)
 {
  if(str2[i]==t2[j][0]){
   if(j<5){
    //(後で)
    i++;
    break;
   }
   else{
    if(str2[i+1]==t2[j][1]){
     //(後で)
     i+=2;
     break;
    }
   }
  }
 }
 //if(j==50)
  //(後で)
}

str[i]=t[j]; の部分は、エラーだし
i は使えなくなるから別の処理にする。
wchar_tも使えないのでcharにしてstrcatか?というとこです。
void henkan()にして少しずつテストしながら考えてみては?

Qかなで書かれた文字をアルファベットに変換できませんか?

エクセルででも、なんででもいいのですが、かなで書かれた文字をアルファベットに一度に変換できないでしょうか? たとえば、エクセルの関数phonetic を使えば、漢字を仮名に変換できますよね? それと同じように、仮名をアルファベットに変換する方法はないでしょうか? もし、そんな便利なことができたら、とってもうれしいのですが。。

よろしくお願いいたします。m(__)m

Aベストアンサー

以前、似た質問に回答しました。

No.806286 質問:Excelで五十音順に並べ替えたい
http://oshiete1.goo.ne.jp/kotaeru.php3?q=806286

No.8の手順3)で、

kakasi -Kj -Jj

を実行すると、

(株)アイウエオ
(株)イノウエ
(株)ウラシマ
(株)阿部商店
(株)石井商店
(有)アイウエオ

(kabu)aiueo
(kabu)inoue
(kabu)urashima
(kabu)abeshouten
(kabu)ishiishouten
(ari)aiueo

と変換できました。

参考URL:http://kakasi.namazu.org/, http://oshiete1.goo.ne.jp/kotaeru.php3?q=806286

Qふりがなをアルファベット化する関数ってありますか?

A列に名前、B列にPHONETICで取り出したヨミがあります。
C列にBをアルファベット化したものを反映する関数はありますか?

(A)山田 花子→(B)ヤマダ ハナコ→(C)YAMADA HANAKO
としたいのです。
欲を言えば、「佐藤陽子」さんはSATOU YOUKOではなく、
SATO YOKOになると最高なんですが・・・。

よろしくお願いします。

Aベストアンサー

ricky223 さん、こんばんは。

#さとう ようこ→sato^ yoko^
これは、私の記述間違いです。

>なぜか例外的に「イノウエ」さんは Ino^e としています。
たぶん、間違いから生じたものだと思います。
inoueにするためには、私のマクロでも、「いの'うえ」にしないと、inoueになりません。

ともかく、そろそろそ公開します。これは、付けたしの上に、オフィシャルなヘボン式とは違うものだということで、私自身としては、このマクロの扱いは、ここだけのものにすることにしました。

ここに公開した以上は、特に著作権を主張はできないけれども、まさか、こんなつぎはぎだらけのみっともないコードでは、私が作りましたとも言えないでしょう。(^^;

ユーザー定義関数と、マクロとに分けました。なるべく、<標準モジュール>に登録してください。RomajiHenkan マクロから使えば、右となりにローマ字が出力されます。一部は漢字も変換するはずです。ユーザー定義関数のままですと、さすがに重いです。

HTML上に出す関係で、半角空白のずれが生じる可能性があります。
最後の部分は、
*,^,^, , "
*,^,^,半角空白, 半角空白"

です。

'------------------------------------------------------------------
Option Explicit
Private Const Roman As String = _
"kyu,kyo,shu,sho,chu,cho,hyu,hyo,pyu,pyo,byu,byo,myu,myo,ryu,ryo," & _
"gyu,gyo,ju,jo,ju,jo,nyu,nyo,kori,gori,tori,dori, " & _
"kya,gya,sha,ja,cha,ja,nya,hya,bya,pya,mya,rya," & _
"kyu,gyu,shu,ju,chu,ju,nyu,hyu,byu,pyu,myu,ryu," & _
"kyo,gyo,sho,jo,cho,jo,nyo,hyo,byo,pyo,myo,ryo," & _
"fa,fi,fe,fo,kye,gye,she,je,pye,bye,mye,rye,dhi," & _
"o^,ko^,go^,so^,zo^,to^,do^,no^,ho^,po^,bo^,mo^,yo^,ro^," & _
"a,ka,ga,sa,za,ta,da,na,ha,pa,ba,ma,ya,ra,wa,xya,xa,n'," & _
"i,ki,gi,shi,ji,chi,ji,ni,hi,pi,bi,mi,wi,ri,xi,xyu,xo," & _
"u,ku,gu,su,zu,tsu,zu,nu,fu,pu,bu,mu,yu,ru,xu,xyo," & _
"e,ke,ge,se,ze,te,de,ne,he,pe,be,me,we,re,xe," & _
"o,ko,go,so,zo,to,do,no,ho,po,bo,mo,yo,ro,o,*,^,^, , "
Private Const Kana As String = _
"きゅう,きょう,しゅう,しょう,ちゅう,ちょう,ひゅう,ひょう,ぴゅう,ぴょう,びゅう,びょう,みゅう,みょう,りゅう,りょう," & _
"ぎゅう,ぎょう,じゅう,じょう,ぢゅう,ぢょう,にゅう,にょう,こおり,ごおり,とおり,どおり," & _
"きゃ,ぎゃ,しゃ,じゃ,ちゃ,ぢゃ,にゃ,ひゃ,びゃ,ぴゃ,みゃ,りゃ," & _
"きゅ,ぎゅ,しゅ,じゅ,ちゅ,ぢゅ,にゅ,ひゅ,びゅ,ぴゅ,みゅ,りゅ," & _
"きょ,ぎょ,しょ,じょ,ちょ,ぢょ,にょ,ひょ,びょ,ぴょ,みょ,りょ," & _
"ふぁ,ふぃ,ふぇ,ふぉ,きぇ,ぎぇ,しぇ,じぇ,ぴぇ,びぇ,みぇ,りぇ,でぃ," & _
"おう,こう,ごう,そう,ぞう,とう,どう,のう,ほう,ぽう,ぼう,もう,よう,ろう," & _
"あ,か,が,さ,ざ,た,だ,な,は,ぱ,ば,ま,や,ら,わ,ゃ,ぁ,ん," & _
"い,き,ぎ,し,じ,ち,ぢ,に,ひ,ぴ,び,み,ゐ,り,ぃ,ゅ,ぉ," & _
"う,く,ぐ,す,ず,つ,づ,ぬ,ふ,ぷ,ぶ,む,ゆ,る,ぅ,ょ," & _
"え,け,げ,せ,ぜ,て,で,ね,へ,ぺ,べ,め,ゑ,れ,ぇ," & _
"お,こ,ご,そ,ぞ,と,ど,の,ほ,ぽ,ぼ,も,よ,ろ,を,ヴ,ー,-, , "

Function HKana2Roman(ByVal myString As String)
 Dim RomanArray As Variant
 Dim KanaArray As Variant
 Dim rtn As Variant
 Dim KitsuOnFlg As Boolean
 Dim nn As Variant, mm As Variant
 Dim i As Long, c As Variant
 Dim buf As String, ltr As String, mylocate As Integer
 RomanArray = Split(Roman, ",")
 KanaArray = Split(Kana, ",")
 myString = StrConv(myString, vbWide)
 myString = StrConv(myString, vbHiragana)
 For i = 1 To Len(myString)
  ltr = Mid$(myString, i, 3)
  rtn = Application.Match(ltr, KanaArray, 0)
  If Not IsError(rtn) Then
   If KitsuOnFlg Then
   buf = buf & Mid$(RomanArray(rtn - 1), 1, 1) & RomanArray(rtn _
      - 1)
'促音ccの訂正
   If InStr(buf, "cc") > 0 Then
     buf = Replace$(buf, "cc", "tc")
    End If
   KitsuOnFlg = False
   Else
   buf = buf & RomanArray(rtn - 1)
   End If
   i = i + 2
   Else
   ltr = Mid$(myString, i, 2)
   If ltr Like "っ?" Then
    KitsuOnFlg = True
    Else
    rtn = Application.Match(ltr, KanaArray, 0)
    If Not IsError(rtn) Then
     If KitsuOnFlg Then
      buf = buf & Mid$(RomanArray(rtn - 1), 1, 1) & RomanArray(rtn _
      - 1)
      '促音ccの訂正
      If InStr(buf, "cc") > 0 Then
       buf = Replace$(buf, "cc", "tc")
      End If
      KitsuOnFlg = False
      Else
      buf = buf & RomanArray(rtn - 1)
     End If
     If i + 1 = Len(myString) Then Exit For
     i = i + 1
     Else
     ltr = Mid$(myString, i, 1)
     rtn = Application.Match(ltr, KanaArray, 0)
     If Not IsError(rtn) Then
      If KitsuOnFlg Then
       buf = buf & Mid$(RomanArray(rtn - 1), 1, 1) & _
       RomanArray(rtn - 1)
       KitsuOnFlg = False
       Else
       buf = buf & RomanArray(rtn - 1)
      End If
     End If
    End If
   End If
  End If
 Next i
 'んのチェック1
 Do
 If InStr(buf, "'") > 0 Then
 mylocate = InStr(mylocate + 1, buf, "'")
  If Mid(buf, mylocate + 1, 1) Like "[kstnhmyrwcfgzjdbp]" Then
   buf = Replace(buf, "'", "", 1, 1)
  End If
  If Mid(buf, mylocate + 1, 1) = "" Or Mid(buf, mylocate + 1, 1) = " " Then
   buf = Replace(buf, "'", "", 1, 1)
   Exit Do
  End If
 End If
 Loop Until InStr(mylocate + 1, buf, "'") = 0
 'んのチェック2
 nn = Array("nb", "nm", "np")
 mm = Array("mb", "mm", "mp")
 For i = LBound(nn) To UBound(mm)
  If InStr(buf, nn(i)) > 0 Then
   buf = Replace(buf, nn(i), mm(i))
  End If
 Next i
 '母音の例外長音
 For Each c In Array("a", "i", "u", "e", "o")
  If buf Like "*" & c & c & "?*" Then
  buf = Replace(buf, c & c, c & "^", 1)
  End If
 Next c
 HKana2Roman = buf
End Function
'----------------------------------------------------------
Sub RomajiHenkan()
Dim rng As Range
Dim c As Object
Dim buf As String
Dim myPhone As String
Set rng = Selection 'マウスで文字を選択
For Each c In rng
 myPhone = WorksheetFunction.Phonetic(c)
 If myPhone Like "[ぁ-ン]+" Then
   c.Offset(, 1).Value = HKana2Roman(myPhone)
 Else
   myPhone = Application.GetPhonetic(myPhone)
   c.Offset(, 1).Value = HKana2Roman(myPhone)
 End If
Next
End Sub

ricky223 さん、こんばんは。

#さとう ようこ→sato^ yoko^
これは、私の記述間違いです。

>なぜか例外的に「イノウエ」さんは Ino^e としています。
たぶん、間違いから生じたものだと思います。
inoueにするためには、私のマクロでも、「いの'うえ」にしないと、inoueになりません。

ともかく、そろそろそ公開します。これは、付けたしの上に、オフィシャルなヘボン式とは違うものだということで、私自身としては、このマクロの扱いは、ここだけのものにすることにしました。

ここに公開した以...続きを読む

Qローマ字→カタカナへ変換(エクセルで)


 KOIZUMI→コイズミ
 ローマ字表記の氏名を カタカナ表記へ変換したい。
 良い手手立ては あるでしょうか。
 教えて下さい。

Aベストアンサー

こんにちは。

これは、ユーザー定義関数というもので、標準モジュールに書くのは、もう既にお分かりになっているかと思います。そして、標準モジュールに貼り付けた後は、一般の関数と同じように使えます。(ただし、貼り付けたブックのみです)

ですから、この中身のコードは忘れてください。

【http://park11.wakwak.com/~miko/Excel_Note/15-03_celldata.htm#15-03-57】

ワークシートで使うときには、一般の関数のように、セル上に、
A1 に、ローマ字が入っているとしたら、

=roma2kana(A1)

だけで、よいのです。そうすると、カタカナになるように設定されています。

>◆私が何か勘違いしていること有るのだろうかと思ったりしています。

ご期待とは違うものであったりしませんか?その点は、大丈夫ですか?

QExcelで五十音順に並べ替えたい

Excelで以下のような表がある場合に、五十音順に並べ替えをしたいのですがどのようなやり方で並べ替えすることができるのでしょうか?
どなたかアドバイスよろしくお願いいたします。

--------------
名称
--------------
(株)アイウエオ
(株)イノウエ
(株)ウラシマ
(株)阿部商店
(株)石井商店
(有)アイウエオ
--------------
このように文字コード順に並んでいます。これを

--------------
名称
--------------
(株)アイウエオ
(有)アイウエオ
(株)阿部商店
(株)石井商店
(株)イノウエ
(株)ウラシマ
--------------

このように”(株)”や”(有)”を抜かした五十音読み順にしたいのです。
自動ふりがな機能を使えれば簡単なのですが、データベースから貼り付けたデータなので、自動ふりがな機能は使えません。
また、諸事情でそのデータベースを操作することはできません。

Excelのバージョンは2002です。
よろしくお願いいたします。

Excelで以下のような表がある場合に、五十音順に並べ替えをしたいのですがどのようなやり方で並べ替えすることができるのでしょうか?
どなたかアドバイスよろしくお願いいたします。

--------------
名称
--------------
(株)アイウエオ
(株)イノウエ
(株)ウラシマ
(株)阿部商店
(株)石井商店
(有)アイウエオ
--------------
このように文字コード順に並んでいます。これを

--------------
名称
--------------
(株)アイウエオ
(有)アイウエオ
(株)阿部商店
(株)石井...続きを読む

Aベストアンサー

Excel VBAなら、GetPhonetic メソッドという便利なものが
あります。

これを使えば簡単にフリガナを取得できますよ。
ただし、全部が正確なフリガナを取得できるわけじゃありませんが、
手で入力するよりはよっぽど楽ですね。

QExcel住所録でアルファベットのよみがなを出したい。

Excel2000で住所録を作成(打ち込み)します。「A1」に漢字名前をローマ字入力で作成し「B1」にアルファベット(ローマ字打ちそのまま)のよみがなを出したいのです。
カタカナまではPHONETIC関数で出来たのですがローマ字が出来ません。過去ログでは nishi6さんが http://www.okweb.ne.jp/kotaeru.php3?q=118541で回答されていたのですが、「標準モジュールに貼り付ける」の意味がわかりません。セルに貼り付ける?マクロを使う?どなたか補足または新たに教えていただけませんか?

Aベストアンサー

『コンパイルエラー:SubまたはFanctionが定義されていません。』のエラーが出るのは、コードが正確に貼り付けられていないからだと思われます。
すべて消去し、下記をもう一度貼り付けてみてください。特に、2つ目の『Public Function KomojiOkikae』をよく確認してください。



Public Const Roma_Boin = "AIUEO"
Public Const Kata_S1 = "AアイウエオKカキクケコSサシスセソTタチツテトNナニヌネノ"
Public Const Kata_S2 = "HハヒフヘホMマミムメモYヤイユエヨRラリルレロWワイウエヲ"
Public Const Kata_S3 = "GガギグゲゴZザジズゼゾDダヂヅデドBバビブベボPパピプペポ"

Public Function changeKatakana2Romaji(srcMoji As String)
  Dim kataMoji As String 'カタカナ文字
  Dim RomaMoji As String 'ローマ字
  Dim L As Long '文字カウンタ
  Dim elm As String '1文字
  Dim Pot As Integer '変換テーブルでの位置
  Dim wkBoin, wkSiin As String '母音と子音
  Dim chgTBL As String '変換テーブル
    chgTBL = Kata_S1 & Kata_S2 & Kata_S3
  kataMoji = StrConv(srcMoji, vbKatakana + vbWide) '全角カタカナにして『゛゜』を処理

  Application.Volatile
  For L = 1 To Len(kataMoji) 'カタカナ全角文字の母音と子音を作る
    elm = Mid(kataMoji, L, 1): Pot = InStr(chgTBL, elm)
    If 0 < Pot And Pot <= 6 Then
      wkBoin = Mid(Roma_Boin, Pot - 1, 1): wkSiin = "": elm = wkBoin & wkSiin
    ElseIf Pot > 6 Then
      wkBoin = Mid(chgTBL, Int((Pot - 1) / 6) * 6 + 1, 1)
      wkSiin = Mid(Roma_Boin, (Pot - 1) Mod 6, 1): elm = wkBoin & wkSiin
    Else
      If elm = "ン" Then elm = "N" '『ン』は特別処理
    End If
    RomaMoji = RomaMoji & elm
  Next
  RomaMoji = KomojiOkikae(RomaMoji, "ャ", "YA") '小文字『ャ』の処理
  RomaMoji = KomojiOkikae(RomaMoji, "ュ", "YU") '小文字『ュ』の処理
  RomaMoji = KomojiOkikae(RomaMoji, "ョ", "YO") '小文字『ョ』の処理
  For L = 2 To Len(RomaMoji) '小文字『ッ』の処理
    If Mid(RomaMoji, L - 1, 1) = "ッ" Then
      Mid(RomaMoji, L - 1, 1) = Mid(RomaMoji, L, 1)
    End If
  Next

  changeKatakana2Romaji = StrConv(RomaMoji, vbNarrow)
End Function

'カタカナ小文字の処理(ャュョ)
Public Function KomojiOkikae(Moji As String, komoji As String, Okikae As String)
  Dim kPot As Integer
  If InStr(Moji, komoji) > 0 Then
    Mid(Moji, InStr(Moji, komoji) - 1, 2) = Okikae
  End If
  KomojiOkikae = Moji
End Function

『コンパイルエラー:SubまたはFanctionが定義されていません。』のエラーが出るのは、コードが正確に貼り付けられていないからだと思われます。
すべて消去し、下記をもう一度貼り付けてみてください。特に、2つ目の『Public Function KomojiOkikae』をよく確認してください。



Public Const Roma_Boin = "AIUEO"
Public Const Kata_S1 = "AアイウエオKカキクケコSサシスセソTタチツテトNナニヌネノ"
Public Const Kata_S2 = "HハヒフヘホMマミムメモYヤイユエヨRラリルレロWワイウエヲ"
Public Con...続きを読む

Q「ありますでしょうか」はアリなんでしょうか?

 最近、ネットやメールで「ありますでしょうか」という言い方をよく目にしますが、これは日本語として正しい形なのですか?

 「でしょうか」は「です」の疑問形と思っているので、「ありますでしょうか」は「ます」と「です」を二重に使っているように感じ、私にはどうもしっくり来ません。

 過去、ファミレスでよく聞く「よろしかったでしょうか」にも違和感を感じましたが、これが実は過去形の「た」ではなく、丁寧語の「た」であり、正しかったという経験以来、自信が揺らいでおります。

 どなたかすっきり説明して頂けないでしょうか?よろしくお願い致します。

Aベストアンサー

はじめまして。

「ありますでしょうか」は間違った日本語です。

正しい日本語文法では
「ありますか?」
「あるでしょうか?」
になります。

このどちらも、「ます」「です」といった丁寧語がそれぞれ使われており、敬語を少しでも使っているという点で常体ではなく、相手に失礼な表現にはなりません。

ご質問の例は、「でしょう」が常体だと勘違いしているところから起こった現象だと思われます。「でしょう」=「だ」の丁寧語「です」の未然形+婉曲表現を表す助動詞「う」の複合語だということを知らない人の誤用です。

「でしょう」は既に敬体なので、ます+でしょう=ますでしょうは、2重に丁寧語を遣い、おかしな表現になっているのです。どちらか一方の丁寧語で十分敬語になるのです。

ただ、「ありますでしょうか」が相手への敬意を増幅させるため、2重の丁寧語を使用した形、と言えば何も失礼なことはなく、迷惑のかかる表現でもないので、自然に定着の様相を見せているのでしょう。

これは「アリなんでしょうか」が通じる理由と同じです。この文は「アリ」を名詞化した表現です。分解すると

アリ:
「有る」の名詞化(口語)

なん:
断定の助動詞「だ」の連体形+助詞「の」+断定の助動詞「だ」の終止形=「だのだ」→「なのだ」→「なんだ」と転用したもので、2重に断定を遣っており強い断定になります。ここでは、語幹の「なん」の使用となります。「なの」に比べて「なん」はより口語的になります。

でしょう:
丁寧語「です」の未然形+婉曲の助動詞「う」

か:
疑問の終助詞

口語では、この語がまかり通るように、ご質問の「ありますでしょうか」もまかり通っているということです。ただし、文法的にはどちらも間違いですが、、、。

以上ご参考までに。

はじめまして。

「ありますでしょうか」は間違った日本語です。

正しい日本語文法では
「ありますか?」
「あるでしょうか?」
になります。

このどちらも、「ます」「です」といった丁寧語がそれぞれ使われており、敬語を少しでも使っているという点で常体ではなく、相手に失礼な表現にはなりません。

ご質問の例は、「でしょう」が常体だと勘違いしているところから起こった現象だと思われます。「でしょう」=「だ」の丁寧語「です」の未然形+婉曲表現を表す助動詞「う」の複合語だということ...続きを読む

Q【C#】 あるイベントから別イベントを呼び出す。

タイトルの通り、あるイベント内から別イベントの処理を呼び出したいと
考えています。ですが、方法がわかりません。

【質問投稿に至った経緯】
現状は、検索から一覧を表示し1つを選択、選択した内容の更新を行なうプログラムを作成しています。選択した内容を更新するところまではできました。ただ、更新内容を確認できるよう一覧画面に前回検索した内容を一覧表示させたいと考えています。この時、検索イベントを呼び出し、一覧を再表示させようと思っています。

Aベストアンサー

「検索イベント」とは、[検索]ボタンをクリックした時の
イベント処理の事でしょうか?
それならば、一覧表示処理を別ルーチンに分けて、[検索]
ボタンClickイベントと同じルーチンをCallする様にすれば
良いと思いますが?


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング