質問: excel:文字列の自動操作 excel2003です。 [a3]セルに何らかの文字列を入力させると、[b3]セルには[=leftb(a3,12)]という数式を設定し、自動入力文字数を全角6文字以内で表示させています。 さらに[d3]セルには、 [=substitute(substitute(phonetic(a3),"(株)",""),"(有)","")] ※式中の(株)(有)は記号 という数式を設定し、[a3]セルの文字列のフリガナを半角カタカナで自動表示させています。 そこで質問です。 1.[a3]セルへの入力が手入力(直接入力)の場合はいいのですが、ここへの入力が他のアプリやブラウザ等の一覧表などからのコピー&ペーストの場合、[d3]セルには半角カタカナではなく[a3]セルと同じ内容になってしまいます。 そういう場合、可能であれば自動的に半角カタカナで表示が出るようにしたいのですが、無理ですよね? もし、無理ならコピペでの入力時に限り、[d3]を空白にする、といったことは出来ますか? 2.[d3]セルへの自動表示文字数を半角文字で16文字以内にしたいのですが、どうすれば良いでしょうか? 出来なければここもまた空白にする、といったことも出来ないでしょうか? よろしくお願い致します。
回答: #1です。 > =asc("アイウエオ")は > left(asc(substitute(substitute(phonetic(a3),"(株)",""),"(有)","")),16) > と、どのように混ぜるのでしょうか? 混ぜるも何も、既に混ざっていますが...見落としましたか? leftの直ぐ右に入っています。 substitute(substitute(phonetic(a3),"(株)",""),"(有)","") で、フリガナ化した文字列から記号の「(株)」と「(有)」が除かれます。 「(株)親和産業北海道支店」→「シンワサンギョウホッカイドウシテン」なので、その外側で asc("シンワサンギョウホッカイドウシテン")と解釈されます。 「シンワサンギョウホッカイドウシテン」→半角カタカナで「シンワサンキ ゙ョウホッカイト ゙ウシテン」 よって、leftb("シンワサンキ ゙ョウホッカイト ゙ウシテン",16)となるので、 結果は「シンワサンキ ゙ョウホッカイト ゙ウ」となります。