アプリ版:「スタンプのみでお礼する」機能のリリースについて

Excel2003です。

[A3]セルに何らかの文字列を入力させると、[B3]セルには[=LEFTB(A3,12)]という数式を設定し、自動入力文字数を全角6文字以内で表示させています。
さらに[D3]セルには、
[=SUBSTITUTE(SUBSTITUTE(PHONETIC(A3),"(株)",""),"(有)","")]
※式中の(株)(有)は記号
という数式を設定し、[A3]セルの文字列のフリガナを半角カタカナで自動表示させています。

そこで質問です。
1.[A3]セルへの入力が手入力(直接入力)の場合はいいのですが、ここへの入力が他のアプリやブラウザ等の一覧表などからのコピー&ペーストの場合、[D3]セルには半角カタカナではなく[A3]セルと同じ内容になってしまいます。
そういう場合、可能であれば自動的に半角カタカナで表示が出るようにしたいのですが、無理ですよね?
もし、無理ならコピペでの入力時に限り、[D3]を空白にする、といったことは出来ますか?

2.[D3]セルへの自動表示文字数を半角文字で16文字以内にしたいのですが、どうすれば良いでしょうか?
出来なければここもまた空白にする、といったことも出来ないでしょうか?

よろしくお願い致します。

A 回答 (5件)

#1です。


> =ASC("アイウエオ")は
> LEFT(ASC(SUBSTITUTE(SUBSTITUTE(PHONETIC(A3),"(株)",""),"(有)","")),16)
> と、どのように混ぜるのでしょうか?

混ぜるも何も、既に混ざっていますが...見落としましたか?
LEFTの直ぐ右に入っています。

SUBSTITUTE(SUBSTITUTE(PHONETIC(A3),"(株)",""),"(有)","")
で、フリガナ化した文字列から記号の「(株)」と「(有)」が除かれます。
「(株)親和産業北海道支店」→「シンワサンギョウホッカイドウシテン」なので、その外側で
ASC("シンワサンギョウホッカイドウシテン")と解釈されます。
「シンワサンギョウホッカイドウシテン」→半角カタカナで「シンワサンキ゛ョウホッカイト゛ウシテン」
よって、LEFTB("シンワサンキ゛ョウホッカイト゛ウシテン",16)となるので、
結果は「シンワサンキ゛ョウホッカイト゛ウ」となります。
    • good
    • 0
この回答へのお礼

ありがとうございます。
早とちりしていました。理解できました。

お礼日時:2008/02/06 00:16

マクロでユーザー定義関数を作るか?CHANGEイベントで設定ですね。


ユーザー定義関数
Function PHONETIC2(KN As String)
KN1 = Replace(Replace(KN, "(株)", ""), "(有)", "")
KN2 = StrConv(Application.GetPhonetic(KN1), vbKatakana + vbNarrow)
PHONETIC2 = Left(KN2,16)
End Function

シートマクロ(入力時に実行するイベント)
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then '1=A列です。変更が必要な場合は変えてください。
If Target.Row > 2 Then '1行目を項目行として外しています。
If Target.Phonetics(1).Text = "" Then
'フリガナがない場合の設定
Target.Phonetics(1).Text = Application.GetPhonetic(Target.Value)
End If
'ターゲットの右のセルに16桁のフリガナを表示
Target.Offset(0, 1) = Left(StrConv(Replace(Replace(Target.Phonetics(1).Text, "(株)", ""), "(有)", ""), vbKatakana + vbNarrow), 16)
End If
End If
End Sub
    • good
    • 0
この回答へのお礼

ありがとうございます。
マクロはまだ勉強中なので、ゆくゆくはこのような手法も込みで考えたいと思います。

お礼日時:2008/02/06 00:24

下記URLの過去ログをご参照下さい。



手動またはマクロを使って振り仮名を表示できるようです。

「エクセルのPHONETIC関数(もしくはマクロ)で一括してフリガナ変換をしたい。」
http://oshiete1.goo.ne.jp/qa2616724.html
    • good
    • 0
この回答へのお礼

ありがとうございます。
マクロは使えたら便利に違いないのですが、まだ修行中の身ゆえ・・・
ゆくゆくは身につけたいと思います。

お礼日時:2008/02/06 00:22

#1です。


半角に限定したければ、LEFTでなくLEFTBを使います。
ただしバイト単位になるので、半角全角が混じった文字列だと
変な結果になることも有ります。
    • good
    • 0
この回答へのお礼

ありがとうございます。
半角全角が混在する可能性は殆ど無いのでOKです。

お礼日時:2008/02/06 00:18

=ASC("アイウエオ")


とすれば全角カタカナが半角カタカナになります。
濁点、半濁点でも大丈夫です。
また、全角数字や全角アルファベットにも対応します。

従って、D3の式は
LEFT(ASC(SUBSTITUTE(SUBSTITUTE(PHONETIC(A3),"(株)",""),"(有)","")),16)
でよろしいかと...

この回答への補足

ありがとうございます。

=ASC("アイウエオ")は
LEFT(ASC(SUBSTITUTE(SUBSTITUTE(PHONETIC(A3),"(株)",""),"(有)","")),16)

と、どのように混ぜるのでしょうか?

補足日時:2008/02/01 09:20
    • good
    • 0

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