• ベストアンサー

罫線を自動的に引く!!! できたら最高なのですが・・・

1つ目; 「E4からO27」と「Q4からAA27」と「E31からO54」と「Q31からAA54」が空白だったら、右下から左下に向かう斜線を「自動的に」引くことはできますか? 2つ目; 「AD4」に数値(例えば8)を入力したら、 E4から1と始まってF4に2,G4に3,H4に4,I4に5,G4に6,K4に7,L4に8,M4は空白,N4は空白,O4は空白と「自動的に」入力させることはできますか? ※よって、AD4には入る数値は、必ず11以下です。 同じく、「AE4」に数値(例えば4)を入力したら、Q4から1と始まってR4に2,S4に3,T4に4,U4は空白,V4は空白,W4は空白,X4は空白,Y4は空白,Z4は空白,AA4は空白 同じく、「AF4」に数値(例えば5)を入力したら、E31から1と始まってF31に2,G31に3,H31に4,I31に5,J31は空白,K31は空白,L31は空白,M31は空白,N31は空白,O31は空白 同じく、「AG4」に数値(例えば5)を入力したら、Q31から1と始まってR31に2,S31に3,T31に4,U31に5,V31は空白,W31は空白,X31は空白,Y31は空白,Z31は空白,AA31は空白 3つ目; 既に作成してしまった表なのですが、項目(現在C列に入力しました)を「あいうえお順」に「行ごと」並べ替えることはできますか? つたない表現で申し訳ありません。 初心者です。 安易なご解説をいただけたら幸いです。 よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.6

余計だったかもしれませんが 下に各行のことを書きました。 Sub 斜め罫線を描く() Application.ScreenUpdating = False 画面のチラツキ防止? →◎です。 Range("E4:O27,Q4:AA27,E31:O54,Q31:AA54").Select 検査する4表を選択 選択範囲 = Selection.Address 選択した4表全部を配列として、変数「選択範囲」に取り込む (たぶん、E4,E5,E6・・・たくさん入ってて、アタマから読むカンジ?) For Each 選択セル In Range(選択範囲) 取り込んだ「範囲」を、一つずつ取り出す(最後まで) If 選択セル.Value = "" Then セルの内容が空("")だったら以下の処理をする 選択セル.Borders(xlDiagonalUp).Weight = xlThin これが「斜線を引け!」命令? →◎です。 End If セルの検査終了 Next 次のセルへ(For~Next間を繰り返す、次のセル、次のセル・・) Application.ScreenUpdating = True チラつき制御解除 End Sub Sub 斜め罫線を消す() Application.ScreenUpdating = False チラつき制御開始 選択範囲 = Selection.Address 選択ずみの範囲(マクロ起動前のアクティブなセル範囲)を 全部取り込み For Each 選択セル In Range(選択範囲) 各セルを順番に呼び出す 選択セル.Borders(xlDiagonalUp).LineStyle = xlNone これが「斜線を消しなさい!」命令? →◎です。 Next For、Next間を、選択したセルの最終セルまで繰り返す Application.ScreenUpdating = True 解除 End Sub エラそうに自分で作ったみたいなカオしてますが 本で見たものをそのままを引用なので・・。 加えて、今回は#1の方の計算式がとても良かったので 半分以上#1さんのおかげです。 なのでわたしは、そのようなお言葉を頂けるような ことはしていません。 今回のことで私自身が新しいことを学ぶことができたので とても感謝しています。(手数?とんでもありません) いろいろお忙しいようですがガンバってください。 #1さんには直接お礼できませんが、よろしくお伝えください(感謝)。 爆笑ですか、そうですね(爆)。ではでは。

palapala_papapa
質問者

お礼

ご解説を拝見したときは、「ご丁寧さ」と「謙虚さ」に頭の下がる思いでした。 この質問・ご回答は、私の永久保存版となりました。 フロッピーにて、大切に保存させていただきました。 私も何度か質問者の方へ回答させていただきましたが、 自分は『本当に相手の方のために、精一杯の知恵を提示した回答をしていたのか』と、恥ずかしくなりました。 今回、kenken0001様のご回答に触れることができ、Microsoftアプリケーションのみならず、 自分の回答方法に疑問が持てたことは、たいへん有意義でした。 他人のために時間を割くということ・・・ その中で,精一杯の知識を提示するということ・・・ 文字のみで説明することの難しさ・・・ 表現・回答方法・・・ 先に回答された方への配慮・・・ 多くのことを学ぶことができ、感謝でいっぱいです。 本当にありがとうございました。 >いろいろお忙しいようですがガンバってください。 私も頑張ります。 kenken0001様も お体に留意され、ご活躍ください(←どこで? 爆)。 またお会いできる機会がありますことを、楽しみにしております。 peso様,kenken0001様のおかげで、無事に表が完成致しましたことを、心よりお礼申し上げます。 ありがとうございました。

その他の回答 (5)

回答No.5

#3の具体例です。 下のマクロを使うとできます。 Sub 斜め罫線を描く() Application.ScreenUpdating = False Range("E4:O27,Q4:AA27,E31:O54,Q31:AA54").Select 選択範囲 = Selection.Address For Each 選択セル In Range(選択範囲) If 選択セル.Value = "" Then 選択セル.Borders(xlDiagonalUp).Weight = xlThin End If Next Application.ScreenUpdating = True End Sub 消す場合は下です。 Sub 斜め罫線を消す() Application.ScreenUpdating = False 選択範囲 = Selection.Address For Each 選択セル In Range(選択範囲) 選択セル.Borders(xlDiagonalUp).LineStyle = xlNone Next Application.ScreenUpdating = True End Sub 描く場合は、固定の範囲を、 消す場合は、直前に範囲指定していた範囲(Activeな範囲) を処理します。 どちらも同じですが、 選択範囲をFor~ Next文で1セルずつ 順番に処理しています。 #3は考え方のみで省略しすぎだったので 今回上記の例を書きました。

palapala_papapa
質問者

お礼

完璧です。感激の嵐・・・ こんなに「スバラシイ技術」をいただけた私は、かなりの幸せ者です。 本当にありがとうございました。 <(_ _)> Sub 斜め罫線を描く() Application.ScreenUpdating = False・・・画面のチラツキ防止???(1) Range("E4:O27,Q4:AA27,E31:O54,Q31:AA54").Select 選択範囲 = Selection.Address For Each 選択セル In Range(選択範囲) If 選択セル.Value = "" Then 選択セル.Borders(xlDiagonalUp).Weight = xlThin・・・これが「斜線を引け!」命令??? End If Next Application.ScreenUpdating = True End Sub Sub 斜め罫線を消す() Application.ScreenUpdating = False 選択範囲 = Selection.Address For Each 選択セル In Range(選択範囲) 選択セル.Borders(xlDiagonalUp).LineStyle = xlNone・・・これが「斜線を消しなさい!」命令??? Next Application.ScreenUpdating = True End Sub ☆私が100%理解できたのは、下の「セル消去」だけです(喜びの泣き)。 Sub セル消去() Range("E4:O27,Q4:AA27,E31:O54,Q31:AA54") = "" End Sub 3月11日に、マクロ操作 社内研修2回目があります。 ドイツ語を『読・ま・さ・れ・る』より怖いー。 「Aさん! 1行目を音読して訳しなさい!」ときます。 「サブ セル消去...えーっと、セル消去しなさいの命令を始めましょう?ですか???」 というような感じです(イヤだー。できないー。) 使いこなせるようになったら、楽しいでしょうね。 こんなに人に喜ばれる技術を持っていらっしゃるなんて、うらやましい限りです。 20ポイントしか発行できないことが、本当に悔やまれます。 3月11日までに,少しでもまともな発音ができるよう、これから辞書と格闘いたします。 これからも、スバラシイ技術で皆さんを助けてあげてくださいね。 ※2月28日に、ポイント発行の上,締め切らせていただきます。  もしお時間を割いていただけるようでしたら、私がプラスしましたコメントが合っているか・・・教えていただいて良いですか? ☆こんなにお手数をおかけした質問者、過去にいました?(苦笑・・・いえいえ、爆笑でお別れしましょう)

回答No.4

表の縦軸、横軸は何をあらわしていますか。 また入力データ(11以下の)が 2の時、10の時ではいれるデータは変化しますか。 固定で1,2,3,4,5,6,空白・・ですか。 (1,2,3・・はどんな意味ですか) 11以下の数字を入れるのはどんな時ですか。 斜線を引くのはどんな時ですか。 処理内容、処理手順が分かればもう少し いいものができるかもしれません。

回答No.3

考え方だけ説明します。 質問1は全セルを取得して 各セルに入力があるかを判定します。 全てなければ斜線を描く、 1つでもあれば描かない、 という処理をします。 質問2はワークシートイベントを使います。 セルに変更があったらデータ入力する。 ただ全てのセルが対象なので 特定セルに変更があったかを判断する 処理を加えます。 どのセルかの判定は Select Caseで処理を分けます。 少し要約しすぎですが 考え方としてはこれでできます。

回答No.2

VBAでもいいですか。 1、2とも可能です。 1の斜め線は、表に対して1つ、4本の斜線ですか。 セル一つひとつにですか。 図形の斜線ですか、スラッシュ"/"ですか。 線を消すことがありますか。 (リセット機能は必要ですか) ちなみに具体的には何をするものですか。 違う方法もあるかもしれません。 3は「並べ替え」ではどうですか。 並べ替えたい表を選択して データ-並べ替えを選んで 行をソートなら、C列を最優先キーに指定してOK *ダメなら、データ-並べ替えで オプションで「ふりがなを使わない」にして実行 *列を並べ替えもできます。 1,2は内容により、再度回答したいと思います。

palapala_papapa
質問者

お礼

VBAという機能は、初心者には無理かも?とのご回答を、下記の方にいただきました。 私に使いこなせるのでしょうか???(半泣) でも、もしよろしかったら、是非教えてくださいね。 1つ目; 斜線は、セル1つ1つを想定しておりました。 しかし、表に対して1つの線が描けるなら(合計4つ)、そちらでも結構です。 簡単な方で結構です。あまりこだわりません。 >図形の罫線,スラッシュ”/”か・・・ 回答なっていないようでしたら、再度尋ねていただきたいのですが、 「塗りつぶしの色」というアイコンの隣にある、「罫線」というもので描いていただけると助かります。 >線を消すことがありますか・・・ 質問に書きました「数を入力する欄」が、何度か変更されることを想定しております。 したがって、「あります」との回答でよろしいのでしょうか。 >ちなみに具体的には何をするものですか・・・ 下記の方へのお礼にも書かせていただいたのですが、通信制大学と資格取得スクールの講義を受けております。 「単位数」や「科目ごとの回数」,「講義の日」,「論文提出日」,「評価」などを記録しております。 同じ科目をダブって聞かなくてもすむように,また、今月優先的に聞かなくてはならない講義はどちらか,など、いろいろです。 うまく説明できなくて申し訳ないのです。 イメージ的には「大学で受講する講義が1回増えれば、スクールで受講する同じ科目の講義は1回減る」・・・そのような感じでしょうか。 3つ目のご回答については、これからやってみます。 質問しておきながらで失礼は十分承知ですが、今月(今週)は、特に講義があちこちで忙しいです。 お礼やポイント発行、締め切りが遅くなるかもしれませんので、許してくださいね。 2月24日の朝までには、1度は覗くように致します。 では、再度のご回答をお待ちしております。 よろしくお願いいたします。

  • peso
  • ベストアンサー率41% (40/97)
回答No.1

1つ目;  VBAを使えば出来そうですけれど、初心者でVBAはツラいですねぇ・・・ 2つ目;  こっちは意外と簡単に出来そうです。  まず、E4に =IF(AND(ISNUMBER(AD4),AD4>0),1,"")  次に、F4に =IF(AND(ISNUMBER(E4),E4<$AD4),E4+1,"")  あとはF4をO4までへコピーすれば可能です。  次もこれと同じ様な感じですね。 3つ目;  C列にカーソルを置いて   A   Z↓  というアイコンで出来ます。  ※これでうまくいかない場合もあります。

palapala_papapa
質問者

お礼

1つ目;VBAという機能は、初心者には無理なのですね??? 2つ目;試してみますね。     実は、まだ試していないのです。     昼間は会社員・夜は通信制大学の学生+資格取得のスクール生で、今月はちょっと忙しいのです(泣)。 3つ目;残念ながら、うまく行かなかったのです(ウルウル)。 ※2つ目をしっかり勉強させて頂きます。  早速のご回答をありがとうございました。

関連するQ&A

  • 順列・数え上げ

    よろしくお願いします。 ここに下のような390個の文字があります。 (A,B,C,D,E,F,G,H,I,J,K,L,M がそれぞれ10個ずつ、 N,O,P,Q,R,S,T,U,V,W,X,Y,Z がそれぞれ20個ずつあります。) この390個の文字から235文字を選んで一列に並べる方法は全部で何通りありますか。 A B C D E F G H I J K L M A B C D E F G H I J K L M A B C D E F G H I J K L M A B C D E F G H I J K L M A B C D E F G H I J K L M A B C D E F G H I J K L M A B C D E F G H I J K L M A B C D E F G H I J K L M A B C D E F G H I J K L M A B C D E F G H I J K L M N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z 以下、私が考えたことを書きます。 この390個の文字から235個の文字を選ぶ組み合わせの総数は、 (Σ[k=0~10]x^k)^13*(Σ[k=0~20]x^k)^13 を展開したときのx^235の係数ですから、 23463540513956137996043929988 通りだということは分かります。 この23463540513956137996043929988 通りのそれぞれについて235個の文字 の順列(同種のものを含む順列)を数え上げれば答えは出ると思いますが、これは あまりにも大変な作業です。 何かよい知恵はないでしょうか。

  • JavaScriptの配列について

    var old_array = Array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '<', '#', '/', '>', '%', '.', '*', '0', '!', '?', ':', '=', '|'); var new_array = Array('b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '<', '#', '/', '>', '%', '.', '*', '0', '!', '?', ':', '=', '|'); のような配列があり、 abcと入力するとbcd DEFと入力するとEFG 012と入力すると!23 というようなものを作りたいのですがどうすればいいでしょうか。

  • キーボードが刻印通りの文字を入力してくれません

    キーボードが刻印通りの文字を入力してくれません ・実際に入力してみると、次のように刻印と異なる文字が入力されます。 (刻印された文字 → 入力された文字) Shift + 2 → * Shift + 6 → ' Shift + 7 → : Shift + 8 → ) Shift + 9 → 反応なし Shift + 0 → 反応なし 正常なキーボード 1 2 3 4 5 6 7 8 9 0 - ^ \ q w e r t y u i o p @ [ a s d f g h j k l ; : ] z x c v b n m , . / \ 当該ELECOMのキーボード 1 2 3 4 5 6 7 8 9 0 - & 反応なし q w e r t y u i o p " @ a s d f g h j k l ; + [ z x c v b n m , . / ] 入力がしづらいので困っています。 ※OKWAVEより補足:「エレコム株式会社の製品」についての質問です。

  • エクセルで連続した回数をカウントする方法は?

    筋トレなど、ある習慣を続けている回数を表示したいと思っています。 ○が行った日で、×が休んだ日です。この場合、AG4に3と表示するようにしたくて、 その後、7日が×で8日、9日と○が続いたら場合は、AG4には2と表示したいのです。    A     B   C   D   E   F   G    H I J K L M N O P Q R S T U V W X Y Z AA AB AC  AD  AE  AF   AG 3 筋トレ   1日 2日 3日 4日 5日 6日・・・                                   29日 30日 31日 連続回数 4         ○  ○ ×   ○  ○  ○ わかりにくいと思いますが、よろしくお願いします。

  • 変換テーブルを使った、文字列置換[JavaScript]

    以下のような、変換テーブルがあるとします。 var ascii = [' ', '!', '"', '#', '$', '%', '&', "'", '(', ')', '*', '+', ',', '-', '.', '/', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=', '>', '?', '@', 'A', 'B', 'C', 'D', 'E', 'F','G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '[', '\\', ']', '^', '_', '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~']; var htmlChar = [' ', '!', '"', '#', '$', '%', '&', ''', '(', ')', '*', '+', ',', '-', '.', '/', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=', '>', '?', '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '[', '\', ']', '^', '_', '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~']; ブラウザの「ソースを見る」で、ソースを見るとHTMLのフォームのテキスト入力フィールドのvalueに特殊文字コード「'」と表示されているとします。 例;ブラウザの「ソースを見る」で、ソースを見た場合: <input type="text" value="'" /> これを変換テーブルを使って、ブラウザの「ソースを見る」で、ソースを見たときに、特殊文字(' なら '(シングルクォート)に表示させたいのですが、可能でしょうか? 変更後の例;ブラウザの「ソースを見る」で、ソースを見た場合: <input type="text" value="'" />

  • Excel:MID関数で

    セルAAに「224020」という数値があります。 S8、T8、U8、V8、W8、X8の各セルのうち、S8に「2」、T8に「2」、U8に「4」、V8に「0」、W8に「2」、X8に「0」を表示させたい場合、S8~X8に、 MID(AA8,1,1) ~ MID(AA8,6,1) という数式を使えば出来る、ということはこちらでの質問の御教示で理解できました。 もし、セルAAに「4020」という数値があった場合、S8、T8各セルを空白もしくは「0」と表示させて、U8から「4」「0」「2」「0」と表示させることは出来ないでしょうか? AAセルも数式が入っているため、手入力で「004020」とさせることが出来ません。 よろしくお願い致します。

  • エクセル 半角英数6文字以上 8文字の入力制限

    エクセルのあるセル内に入力させた文字のチェックにあたり で半角英数(0,1,2,3,4,5,6,7,8,9)と(a,b,c,d,e,f,g,h,i,j,k,l,n,m,o,p,q,r,s,t,u,v,w,x,y,z) (A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,) の組み合わせによる6文字以上8文字以内、さらに数字のみの 組み合わせを禁止したチェックを行ないたいのです。 現状 LENB関数で6未満 LENB関数で9以上をエラー ISNUMBER関数でTRUEの場合エラーとしているのですが 半角カタカナや記号に対してチェックをかける関数が 分かりません。 入力されてくるセルに対するチェックの関数は 半角カタカナチェックの関数式 記号チェックの関数式と別に分けていただいても構いませんので アドバイスいただけましたら幸いです。

  • OCRで文字変換したいのですが。

    Brother 複合機 DCP-595CN 使用。スキャン項目の三段目 OCR:テキストデータ変換で 本の文字を読み取り wordに写しその文字を自由にフォントやサイズを変えたい。  PCは MacBook Air バージョンは Yosemite 10.11 から Hi Sierraの 10.13.8 に変えました。 以下はできてこんなところです! c c r y O w r n e a n a s h a r k k n o w s y o w % ' l t @ e ' b o y r & s @ e d , h a r d l y a b t e t o c r e d i t h i s h e a r i n g , T h e w o m a n n o d d e d , n o t l o o k i n g a t a n g r t h i n g b u t h e r s k i r t . P a u l o ' s b r e a t h e x p l o d e d " B u t t h a t ' s i m p o s s i b l e ! " T h e w o m a n p a u s e d t o r a i s e b l a c k e y e s i . n u r o n d e r , c ' Y o u h a v e n e v e r h e a r d o f m e @ " s h e a s k e d . P a u l o w a s a t a l o s s t o a c c o u n t f o r t h e w o m a n ' s c a s u a l a c c e p t a n c e o f t h e s h a r k ' s p r e s e n c e A l l k n e w s 3 h a r k s w e r e a m e n a c e ! Y e t t h i s o d d o   ※OKWAVEより補足:「ブラザー製品」についての質問です。

  • JavaScriptの文字のエンコードについて

    フォームの入力欄で、「'」(シングルクォート)を入力してサブミットすると、ブラウザ(Firefox3.5)で見ると「'」と表示されていますが、ブラウザのソースを見るとvalueの¥ところには、「'」と表示されています。 これは、PHPでエンコードされているせいなのですが、 PHPでエンコードされた「'」を、JavaScriptを使って、ブラウザからソースを見たときに「'」と表示できるでしょうか? ソースは、こんな感じで書いたのですが、動作しませんでした........。 function chChar(){ var keyValue = document.getElementById("delete_key").value; var ascii = new Array(' ', '!', '"', '#', '$', '%', '&', "'", '(', ')', '*', '+', ',', '-', '.', '/', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=', '>', '?', '@', 'A', 'B', 'C', 'D', 'E', 'F','G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '[', '\', ']', '^', '_', '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~'); var htmlChar = new Array(' ', '!', '"', '#', '$', '%', '&', ''', '(', ')', '*', '+', ',', '-', '.', '/', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=', '>', '?', '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '[', '\', ']', '^', '_', '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~'); var re = new RegExp(htmlChar); if(keyValue.match(re)){ for(i=0; i<ascii.length; i++){ keyValue = keyValue.replace(htmlChar[i], ascii[i]); } } return keyValue; }

  • IF関数で出来ないのかな?

    E13のセルにa,i,u,e,oが入力されたら、AA2:AA28から参照してZ2:Z28を現す事は以下の式でやっとこさ出来ました。 =IF(E13="a",(LOOKUP(E13,AA2:AA28,Z2:Z28)),IF(E13:E13="i",(LOOKUP(E13,AA2:AA28,Z2:Z28)),IF(E13="u",(LOOKUP(E13,AA2:AA28,Z2:Z28)),IF(E13="e",(LOOKUP(E13,AA2:AA28,Z2:Z28)),IF(E13="o",(LOOKUP(E13,AA2:AA28,Z2:Z28)),""))))) が!!! 今度はその逆でE13のセルにa,i,u,e,o以外が入力されたらAA2:AA28から参照してZ2:Z28を現す事が出来ません!! NOT関数で出来ると思って以下の式を作ったんですけど、 =IF(NOT(E13="a"),(LOOKUP(E13,AA2:AA28,Z2:Z28)),IF(NOT(E13="i"),(LOOKUP(E13,AA2:AA28,Z2:Z28)),IF(NOT(E13="u"),(LOOKUP(E13,AA2:AA28,Z2:Z28)),IF(NOT(E13="e"),(LOOKUP(E13,AA2:AA28,Z2:Z28)),IF(NOT(E13="o"),(LOOKUP(E13,AA2:AA28,Z2:Z28)),""))))) これだと何故かa,i,u,e,oを含め全てで参照して表してしまいます。 また他にも IF(C13="i",IF(C13="u",IF(C13="e",IF(C13="o","",(LOOKUP(C13,AA2:AA28,Z2:Z28))),(LOOKUP(C13,AA2:AA28,Z2:Z28))),(LOOKUP(C13,AA2:AA28,Z2:Z28))),(LOOKUP(C13,AA2:AA28,Z2:Z28))), (LOOKUP(C13,AA2:AA28,Z2:Z28))) というようにNOT関数を使わずに"真"と"偽"逆にしてみたんですけど 結果はNOT関数と同じでした。 なぜ?分らない・・・。 とりあえずa,i,u,e,o以外が入力されたらAA2:AA28から参照してZ2:Z28を現す方法を教えて下さい。 そして余裕があれば、NOT関数と"真"と"偽"逆にした時に全てで参照して表してしまうのかも教えて欲しいっす!! ちなみにE13=MID(B3,2,1)となっていて、B3にある文字列から一文字抜いた状態です。

専門家に質問してみよう