『入力制限の応用2』(つまり) 9月29日に入力制限の応用を教えていただいた者です。 さらに改良が必要になってしまった為、悩んでおります。 関数に対してまったく知識不足でお恥ずかしいのですが、教えていただけますでしょ うか?        H    R   7  (件名)         8  (カナ) 今、H7に件名が入るセルがあります。 H8は半角カタカナ15文字以内で入力しなければならない &そのまま頭からカナにして意味が通じなくなってしまってはいけない というルールがありますので、 R8に、=IF(LEN(H8)>15,(LEN(H8)-15)&"文字超過!","")を入れています。 改良したいのは、 頭から15文字以内のカタカナで意味が通じる時は=PHONETIC(H7)を使って、 意味が通じない時にはH8に手入力でカナ件名を入れて、、 =IF(LEN(H8)>15,(LEN(H8)- 15)&"文字超過!","")を使えるようにしたいんです。 この二つの関数を合体させたらいいのかなと思うのですが、、、 どのようにしたらいいでしょうか? ---- なんとなく疑問に思ったので・・・・ >頭から15文字以内のカタカナで意味が通じる時は=PHONETIC(H7)を使って、 この意味が通じる時の判断は誰がどうやって、何を基準として判断するのでしょうか? BJ ---- BJさんと衝突☆ 以下 そのまま つまりさんに質問です >カタカナで意味が通じる時は エクセル君に意味が通じるかどうかの判定をどうやってさせるの?   >PHONETIC(H7)を使って、 >H8に手入力でカナ件名を入れて、、 PHONETIC関数はH8に入力ですよね? H8に手入力した時点でPHONETIC関数は消えますが、次回からH8に入力する事はないの?                      (oni) ---- エクセルに判断させるのではなく、 自分で入力した時に意味が通じないと思った時には 手入力でH8にカタカナの件名を入れたいです。 H8にPHONETICを入れるのではなく R8に合体させた関数を入れられないものかと思ったんですが・・・無理でしょうか?  (つまり) ---- 2行余分に使う案。 H7とH8の間に2行挿入。H8はH10の位置になります。 H8は未入力。H9へ=PHONETIC(H7)を入力。 8行目、9行目をそれぞれ行番号で右クリック、「表示しない」とします。 H10へH7の読み仮名を入力するときは Altを押しながら↓キーで選択。 文字が多いと警告が出たら、編集してみて意味が通じるかどうか判断。 (みやほりん)(-_∂)b ---- みやほりんさんの回答がついてますが、 こういう事かと自分なりに。。。 >R8に合体させた関数を とのことでしたので IF(COUNTA(H8)=0,PHONETIC(H7),IF(LEN(H8)>15,(LEN(H8)-15)&"文字超過!",H8))   (oni) ---- oniさんの回答が希望に近いかなと思ってやってみたんですが、 入れてみたところ、R8にカナ文字が表示されてしまいました。 説明が下手で申し訳ないのですが、 H7に件名を入力→H8に半角カタカナで読みを表示 問題点@半角15文字しか表示しないようにしたい! 問題点Aこれだと頭からカタカナにした時に意味が通じない場合がある そこで、、、 H8に自分でカタカナの件名を入れるように変え、R8に15文字以下で、 それ以上になった場合は何文字超過したか分かるようにした。 問題点@15文字以下で意味が通じてしまう場合に、わざわざカタカナ入力をする手間がある。 →そこで 件名を入力した時にそのままのカタカナ標記で大丈夫な場合はそのまま。 意味が通じない時はそのカタカナを自分でいじれるようにして、 さらに15文字オーバーかどうかをわかるような設定に変えたいと思ったんです。 ---- R8はそのままで、 H8=ASC(PHONETIC(H7))として 嫌な場合は上から入力するのじゃ駄目ですか? (その場合H8の関数は消えますが・・・。) 「H8の関数を残したまま、手入力で修正もしたい」 のですかね? あるいは、読みが15文字以上でも15文字以下で意味が通じれば 15文字までのふりがなを採用  ですかね? 実際の例を数件ご呈示の上ご説明していただけると わかりやすいかもしれません。 (HANA) ---- 今日は 衝突☆デー 以下そのまま エーット(汗; 理解力が無くてごめんなさい   >R8にカナ文字が R8にカタカナ表示したいのであれば、 H7の件名入力のセルで、 書式>ふりがな>設定 で半角カタカナを選択して下さい。 件名を入力してそのままカタカナ標記で大丈夫な場合も15文字以内にしたい と言うことなら、 =IF(COUNTA(H8)=0,MID(PHONETIC(H7),1,15),IF(LEN(H8)>15,(LEN(H8)-15)&"文字超過!",H8))                     (oni)   ---- すみません(>_<) 現在、R8に、=IF(LEN(H8)>15,(LEN(H8)-15)&"文字超過!","")を入れています。 例としては・・・           H R 7  株式会社エクセルの学校改修工事 8  カブシキガイシャエクセルノガッコウカイシュウコウジ          14文字超過! 今、こんな感じになっています。 H8は=PHONETIC(H7)ではなく手入力です。 H8に=PHONETIC(H7)を入れて、わかりやすい件名だったら何の問題もないのですが、 上のような件名の時はエクセルノガッコウカイシュウのみの標記にしたいんです。 そうすると、 15文字以内の時は=PHONETIC(H7)を使って、 15文字以上になった時は訂正を入れれるよ うな感じが使いやすいのかなと思い質問させていただきました。 ---- おや、私の書き込んだ方法はoniさんが既に書き込まれたのと同じでしたね。 で、この案はダメなのでしょうか? (フリガナが入力せずに表示出来ますが、編集は出来ません。 一度関数を削除すると、次から表示されません。) あるいは、みやほりんさんの方法は? つまりさんの書込を読む限り「これだ!!」って感じですが・・・。 (フリガナが入力せずに表示できて、変更したい場合は編集できます。 作業行が必要です。) それとも 「H7の読み仮名は○○です。△△文字、××文字超過です。 H8セルに表示しますか?」 みたいな確認が出てくれればいいかも・・・と思ってますか? ちなみに >R8に合体させた関数を入れられないものかと思ったんですが・・・ これは、どんな感じで表示されるものをご希望なのでしょうか? 1.フリガナが15文字以内でそのまま使える時 2.フリガナが15文字以内でそのまま使えない時 3.フリガナが15文字以上でそのまま使えない時 もしももっとパターンがあれば、全てのパターンに対して 「このパターンでは、このように」と例をあげて教えて下さい。 何をやりたいと思っているのか、よく分からないのですよね・・・。 これが分からないことには如何ともし難いのです。 (HANA) ---- みやほりんさんの回答を読んで ああ〜こっちの方が。。。。 と思いましたが。 >H8にPHONETICを入れるのではなく >R8に合体させた関数を入れられないものかと思ったんですが・ とのことですので、σ(=^‥^=) なりに考えてみただけ。。。。 HANAさんも↑で仰ってるように、 >何をやりたいと思っているのか、よく分からないのですよね・・・。 なのです。。。。 σ(=^‥^=) のは、 H7に入力したふりがなをR8に表示させる そのふりがながダメなら、H8に入力したものをR8に表示 と言うだけのものですから。 つまりさんはPHONETIC関数をどのセルで使いたいの?                          (oni) ---- うまく書けずにすみません。 とりあえず片っ端から試してみた結果を書かせていただきます。 みやほりんさんの2行を使う案を試したところ。。。 →おじいさんも使えるようにしなければならないので、Alt+↓の技が難しそうです。 →=IF(LEN(H10)>15,(LEN(H10)-15)&"文字超過!","")になっているのに警告が出ないです・・・ oniさんの↓の案を試したところ。。。 式の意味を理解できない為にR8に式を入れるのでいいのかわからなかったのですが。。(R8に入れてみたところ) IF(COUNTA(H8)=0,PHONETIC(H7),IF(LEN(H8)>15,(LEN(H8)-15)&"文字超過!",H8)) =IF(COUNTA(H8)=0,MID(PHONETIC(H7),1,15),IF(LEN(H8)>15,(LEN(H8)-15)&"文字超過!",H8)) →共にH8にふりがなを出したいのですが、R8にふりがなが表示されてしまいます・・・ >H7に入力したふりがなをR8に表示させる >そのふりがながダメなら、H8に入力したものをR8に表示 >と言うだけのものですから。 H7に入力したものをH8に表示させH8が15文字以上になった時に R8に何文字オーバー表示&H8のふりが意味が通じないものなら修正できるようにしたいんです。 >PHONETIC関数をどのセルで使いたいの? えっと、H8で使いたいんです(H7のふりがなをH8に表示させたいんです) HANAさんの↓の案ですが、 H8=ASC(PHONETIC(H7)) →関数は残しておきたいです。 >読みが15文字以上でも15文字以下で意味が通じれば >15文字までのふりがなを採用ですかね? はい、そうです。 H7に件名を入力して H8にふりがなを表示 R8に何文字オーバーの警告が出る H8のふりがなは・・・ (ご理解いただいた通りの3点です) 15文字以上になった時→何文字オーバーかわかるようにしたい&意味が通じるように修正できるようにしたいです・・・ 15文字以下の時→そのままのふりがなで表示する&そのままでは意味が通じない時は修正できるようにしたいです・・・ >H7の読み仮名は○○です。△△文字、××文字超過です。 >H8セルに表示しますか?」 >みたいな確認が出てくれればいいかも・・・と思ってますか? いえいえ、思ってないです(>_<) みなさんのご意見を参考にさせて頂いて、今も色々試しているんですが、、、 うまく出来ません。。。 とりあえず現状をご報告させて頂きました。  (つまり) ---- >>PHONETIC関数をどのセルで使いたいの? >H8で使いたいんです(H7のふりがなをH8に表示させたいんです) つまりさん↑でこう仰ってます。 >H8は=PHONETIC(H7)ではなく手入力です。 でも、やっとおやりになりたいことはわかりました。 1)H7に件名入力 2)H8にふりがな表示(PHONETIC関数で) 3)R8に15文字以上の警告表示 4)意味が通じない場合はH8に手入力 5)でも、H8のPHONETIC関数は残したい 以上でイイデスカ? 結論として 一般機能では無理です。 一番最初のσ(=^‥^=) のコメントで書いたように >PHONETIC関数はH8に入力ですよね? >H8に手入力した時点でPHONETIC関数は消えますが、。。。 です。 つまりさんのご希望をかなえるには、マクロになると思います。 マクロは回答出来るレベルではありませんので一応考えてみますが。。。 ヘルプを出しておきますね。。。 σ(=^‥^=) が(゜ー゜)(。_。)ウンウン言って考えている間に キット誰か回答して下さいますよ。 では、、、、、 **(>_<。)HelpMe!!                      (oni) ---- マクロを使わない案をもうひとつ。 H7 件名入力 任意の列の8行目に =ASC(PHONETIC(H7)) (仮にZ8とします) H8 へ次の設定  データ>入力規則 を選択  「入力値」の種類 を 「リスト」 、「元の値」に「=Z8」  「エラーメッセージ」タブを選択して、  「無効なデータが入力されたらエラーメッセージを表示する」のチェックをはずし、OK。   H8を選択したときにはドロップダウンボタンが現れるのでこれをクリックすると Z8に表示されるH7の半角振り仮名が選択入力できます。 R8に文字数オーバーの警告が出た時には編集。   選択時にドロップダウンボタンが表示される分、前の提案よりは親切かと。 ただし、H7を入力しなおしたときにH8が自動的には変更されないので もしそこまでご希望ならやはりマクロになります。 (同一セルで関数を残しつつ、直接入力も可能にすることは出来ないので) (みやほりん)(-_∂)b ---- >つまりさんのご希望をかなえるには、マクロになると思います。 ↑撤回!! みやほりんさんので充分ご希望に添うのでは。。。。   いらないことを考えてたので、遅くなった。 H7のふりがなをH8に表示し、文字数警告や、意味が通じなければ手入力で編集 ということなので、H7のふりがなをH8に表示するだけです。 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Count > 1 Then Exit Sub If Target <> Range("h7") Then Exit Sub If Target = "" Then Exit Sub Range("h8").Value = Range("h7").Phonetic.Text Range("h8").Value = WorksheetFunction.Asc(Range("h8").Value) End Sub                           (oni) ---- 今、皆さんの回答を参考に奮闘中なんですが、 >1)H7に件名入力 >2)H8にふりがな表示(PHONETIC関数で) >3)R8に15文字以上の警告表示 >4)意味が通じない場合はH8に手入力 >5)でも、H8のPHONETIC関数は残したい >以上でイイデスカ? >結論として >一般機能では無理です。 えっとですね、H8にPHONETICを入れるのは入力後消えてしまうと次回困るので、 R8に何文字オーバーの警告とセットしてPHONETICの機能を入れられないものかと思ったんです。 みやほりんさんとoniさんから頂いた回答については今から奮闘しますっ! つまり ---- >みたいな確認が出てくれればいいかも・・・と思ってますか? って言うのは「どんなのが良いのかな?」と言う確認だけだったので あしからずご了承下さいませね。 運用方法にもよると思いますが、フォームになるシートを作って於いて 新しく使うときはそのフォームを使う事にすれば関数が消えても問題ないような気がしますが。 (もちろん、どんな風に利用するのかわかりませんし、 そちらの使用者の方がどこまで分かってくれるのかも分からないので 今までの流からして、使えない可能性の高い方法ですが。) (HANA) ---- ナナメ読みなので、駄レスでしたら無視して下さい >H8にPHONETICを入れるのは入力後消えてしまうと次回困るので、 とあるので、「シナリオ」とか「マクロボタン」を作成して ポチッと押したら、変るように設定してあげてみたら…? (Ohagi) ---- >>みたいな確認が出てくれればいいかも・・・と思ってますか? >いえいえ、思ってないです(>_<) ご希望なのかと勘違いして修正しましたが、読み違えていたので削除しました。                                     (oni) ---- ごめんなさい〜。>oniさん (HANA) ---- 読んでいて何かしっくり来ないと思っていたのですが、 >R8に何文字オーバーの警告とセットしてPHONETICの機能を入れられないものかと  「R8 に入力した関数で H8 に振り仮名を表示させることができる」 という誤解があるのではないでしょうか。 (みやほりん)(-_∂)b ---- みやほりんさんと衝突 以下そのまま アッ! イエイエ全然です^^ >HANAさん でも、また少し混乱してます??? >R8に何文字オーバーの警告とセットしてPHONETICの機能を入れられないものかと思ったん >です。   でもまあ、みやほりんさんの回答などをお試し頂いて、こうして欲しいと言う点を 再質問して頂ければ。。。 >「R8 に入力した関数で H8 に振り仮名を表示させることができる」 >という誤解があるのではないでしょうか。   なるほどね。。。                        (oni) ---- みやほりんさんから頂いた回答でこれだ!というものが出来ました!! 私の質問が至らなかったせいで、長々と付き合って頂きありがとうございました。 上から順に試すつもりだったのですが、とりあえずこれで解決です。 大変勉強になりました。 みやほりんさんの回答以降に頂いた案も今から試してみます。 本当にみなさん、ありがとうございました♪ つまり