• 締切済み

エクセルで無限大マークを表示したい

ある条件の時に、無限大マーク(∞)を表示させるエクセルのシートがあります。たとえばこんな感じです。     =if(A1>100,"∞",A1) 私のエクセルでは正しく表示されるのですが、シンガポールにいる同僚に渡したら!が逆さまになった文字とPに似た文字が表示されてしまいました。シートを送り返してもらうと、式がこのように変わっていました。     =if(A1>100,"判別できない文字",A1) 特殊文字をハードコードしているのがいけないのかと思って、"∞"の代わりにCHAR(8551)にしてみました。∞の文字コードは10進数で8551です。     =if(A1>100,CHAR(8551),A1) もちろん、私のエクセルでは正しく∞が表示されました。しかし同僚がやってみると#VALUEが表示されたそうです。同僚が関数の挿入ウィザードでCHARを選択すると下に出る説明文には入れられる数字は1~255となっているそうです。ちなみに私のエクセルでウィザードを使ってCHARを挿入しようとすると説明文には1から255および8481から39038まで可能となっています。 同僚のエクセルは1~255までしか受け付けないので、8551を入れようとしたら#VALUEのエラーが出たのだと思います。 さて、同僚のエクセルで無限大マークを表示させるにはどうしたらよいのでしょうか? ちなみに彼のパソコンはWindows XP SP2の英語環境です。私のパソコンはWindows XP SP2を日本語で使っています。エクセルは共に2003バージョンSP2です。

みんなの回答

  • cz611cgy
  • ベストアンサー率56% (190/338)
回答No.4

色々書きましたが、ねぼけていたようでミスがあちこちに.. この場を借りて訂正いたします >> 日本のコードページは一般に934です 日本のコードページは一般に932です >> &H8187(16進)=2167(10進数)になる &H8187(16進)=33159(10進数)になる >> AscW関数、ChrW関数 これらはVBA用なので、ワークシート関数ではCHARしかなさそうです > 生JISの2167を10進数に変換した8551だけが∞を表示 この通りですね。 HelpにもASCIIまたはJISコードと明記されていました 色々と混乱させてしまったと思いますのですいません

参考URL:
http://office.microsoft.com/ja-jp/excel/CH062528321041.aspx,http://office.microsoft.com/ja-jp/excel/HP052090091041.aspx
robotvoice
質問者

お礼

いえいえ、とんでもありません。いろいろありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • cz611cgy
  • ベストアンサー率56% (190/338)
回答No.3

ちょっと書き忘れたので追記 斜め読みされちゃうと、Excel97の情報だから関係ないと思われるかもしれないので・・ AscW関数、ChrW関数、そしてUNICODE辺りが重要な所です ところで10進数で8551でした? その辺りは日本だと使われていないような? 参考までにMS仕様ShiftJISでは、&H8187(16進)=2167(10進数)になるように思います。 Unicodeだと&H221E(16進数)=8734(10進数) 句点コードとか生JISじゃないですよね? こちらはVista上で見ているから、採用しているJIS規格の年が違うのですが、この辺りの文字はズレが起きていなかったように記憶しています

robotvoice
質問者

お礼

∞はUNICODEで221e、生JISで2167、SJISで8187だとわかったのですが、それらをCHAR(文字コード)関数に当てはめるとそのままでは#VALUEエラーになるので、10進数に変換して入れてみました。 そうすると生JISの2167を10進数に変換した8551だけが∞を表示しました。

全文を見る
すると、全ての回答が全文表示されます。
  • cz611cgy
  • ベストアンサー率56% (190/338)
回答No.2

非常に難しい問題だと思います 詳しくは参考URLを見ていただくとして、日本のコードページは一般に934です。 派生で943とか、お得意のMSだけマッピングがJISとちょっと違うとか色々ありますが・・ Excelとしては文字が化けないようにユニコード指定とする事で、#VALUEは回避できると思います でも英語版の場合は「∞」に対応するフォントがインストールされておらず見た目が「?」、又は「□」になる可能性が高いように思います 逆に質問となってしまいますが、よろしければ、英語版Windowsでどうなったか教えてください 参考URLの2つ目ですが、「∞」が目立たせたいという意味で使いたかったのであれば、代替手段としてこういうのも有ります 用途に応じて、色々ありますよという事で^^

参考URL:
http://support.microsoft.com/kb/408879,http://support.microsoft.com/kb/268568
robotvoice
質問者

お礼

文字が化けてしまっては(今でも意味不明の文字が表示されている)困りますので、確実に表示される文字で、色を変えるという手段もありますね。ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

言語によりフォントの番地が違うのでしょう。それでも「∞」は数学記号でどこかにあるはずですから、同僚のかたのパソコンで「∞」探してもらってそれで置き換えてもらえばいいはずですが。

robotvoice
質問者

お礼

早速ありがとうございます。 そうですね。私の環境と違うわけですから、同僚の環境に存在する「∞」を採用すればよさそうですね。試してみます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルの条件分岐について教えて下さい。

    エクセルの条件分岐について教えて下さい。 現在、エクセル2003を使っています。 A1セルが「空白」「ON」というプルダウンリストになっていて、「ON」を選択するとB1セルに「はじまり」、C1セルに「おわり」という文字が表示されるようにしたいと考えています。 色々調べてみて参考になるものをようやく見つけて、自分でカスタマイズしてみました。 Sub 条件分岐 () if Range("A1").value = ON    Range("B1").value = "はじまり"    Range("C1").value = "おわり" End if End Sub これをシート部分を「右クリック→コードの表示」で書いてみたのですが動きませんでした。 どうすれば思うようにできるか分からずつまづいております。 お手数ですが、どなたかご教授頂けないでしょうか?

  • エクセル2007で通貨が表示されない。

    エクセル2007で通貨が表示されない。 いつも、こちらでお世話になっています。 エクセルのSheet1のA1に「\1,000」と入力し、Sheet2のA1には「=Sheet1!A1& ””」と入力しています。 すると、Sheet2のA1は「1000」と表示されますが、「セルの書式設定」で「\1,000」と表示することはできないのでしょうか? また、下記の画像でE5に合計金額を入れようとしたら、#VALUE!と表示されてしまいます。オートSUMでは駄目なのでしょうか?

  • EXCEL sheet間での表示について教えて下さい

    EXCELで、sheet1(A2)の内容をsheet2(A2)に表示させているのですが、 sheet2(A2)表示は、=sheet1!(A2)と表示。 sheet1に行挿入などを行うと、sheet2のデーターがうまく表示しません。 色々と調べた結果、INDIRECT関数にて、("A2")とすれば良いみたいなのですが、=INDIRECT("sheet1!A2") 実は下に200行位コピーしたいのです。 何か良い方法を教えていただけませんでしょうか。 宜しくお願いします。

  • Excelで都道府県を入力するとそのコードを表示させるようにするには?

    Excelについて質問です。 例えばセルB1に都道府県を入力すると、A1に都道府県コード(1~47までの数字)を表示させたいと思っています。 別シートのA列に都道府県コード、B列に都道府県を作って47都道府県コードとその都道府県を作ってVLOOKUPで表示させようとしましたがうまくできませんでした。 次にif関数を使って「B1が北海道ならA1に1を表示」というように47都道府県をif関数を重複させて作っていきましたがif関数を8つぐらいまでしか重複させることができず失敗に終わりました。 何か良い方法はありますでしょうか?

  • ExcelのVBAで禁則文字を判別したい

    ExcelのVBAについて質問があります。 例えばセルA1に (株) という文字が含まれていた場合、 禁則文字が使用されたとしてアラートを表示させたいと考えています。 If Worksheets("Sheet1").cells(1, 1).value = (株)が含まれている msgbox "使用できない文字が含まれています",vbOkOnly Exit Sub End If こんな形でできますでしょうか? 教えていただけると助かります。 よろしくお願いします。

  • エクセル2012について教えてください。

    別ブックからの参照等で、関数を入れているのですが、 =SUMIFS('[別ブック.xlsx]シート1'!$AD:$AD,'[別ブック.xlsx]シート1'!$IF:$IF,$A4,'[別ブック.xlsx]シート1'!$IH:$IH,$F$2,'[別ブック.xlsx]シート1'!$II:$II,G$2) このような関数を入れているのですが、エクセル2012で開くと#VALUE!と表示されてしまうのですが、原因が分かる方教えてください。 初めに開くと表示されるのですが、保護ビューで開いており、編集を有効にすると全て#VALUE!になってしまいます。 エクセル2007、エクセル2010では何も問題が起こりません。 何が原因なのでしょうか?

  • エクセルVBAで無限ループ

    教えてください。 以下の2つのエクセルマクロはまったく同じことをさせようとしているのですが、test02の方は.Offset(1).Activateが働かないのか、無限ループに陥ってしまいます。 単にActiveCell.という記述をWith~End Withでまとめただけなのになぜこうなるのでしょうか? Sub test01() ActiveSheet.Cells(1, 1).Activate Do While ActiveCell.Value <> "" If Not IsNumeric(ActiveCell.Value) Then ActiveCell.Offset(0, 1).Value = "文字" ElseIf ActiveCell.Value > 0 Then ActiveCell.Offset(0, 1).Value = "正数" ElseIf ActiveCell.Value < 0 Then ActiveCell.Offset(0, 1).Value = "負数" Else ActiveCell.Offset(0, 1).Value = "その他" End If ActiveCell.Offset(1).Activate i = i + 1 Application.StatusBar = i Loop End Sub Sub test02() ActiveSheet.Cells(1, 1).Activate With ActiveCell Do While .Value <> "" If Not IsNumeric(.Value) Then .Offset(0, 1).Value = "文字" ElseIf .Value > 0 Then .Offset(0, 1).Value = "正数" ElseIf ActiveCell.Value < 0 Then .Offset(0, 1).Value = "負数" Else .Offset(0, 1).Value = "その他" End If .Offset(1).Activate i = i + 1 Application.StatusBar = i Loop End With End Sub

  • エクセルのマーク(アイコン)の入手方法

    Excel2000、2003を使用しています。 エクセルのマーク(緑のX文字のもの、もしくはその緑のX文字のマーク とシートのイラストが合わさっているもの)をエクセルのシート内に 貼り付けて、そこから別のシートにリンクを張りたいのです。 リンクはハイパーリンクでできそうですが、Excelのマークをどう入手 したらよいのかわかりません。 どうかご教示下さい。よろしくお願いします!

  • 【エクセル】もし、A1に文字列が入っていたら・・・

    既出でしたら、申し訳ありません。 エクセル初心者です。 もし、A1に文字列が入っていたらB1は文字列を表示 もし、A2が空欄であったらB2は空欄 という関数を使いたいのですがどうしたら良いでしょうか。 以下 シートイメージ --------   A1  B2 1 佐藤 2 -------- 単純に=IF(A1,A1,"")で、返ってくるかと思ったら#VALUE!が出てダメでした。 どうぞ宜しくお願い致します。

  • VBA 別のシートから文字列参照して全て表示

    ExcelのVBAでSheet1のA3に5文字の文字列(大文字、小文字を区別しない)を入力してSheet2のC列にあるA3の文字列から始まるデータ(10文字以上)をすべてを参照してSheet2のD列を含めSheet1のA5,B5から下にすべて表示させる。 宜しくお願い致します。 Sub macro1() Dim V2 As Variant V1 = Sheets("sheet1").Cell("A3").Value '文字列を取得 V2 = Application.InStr(Sheets("sheet2").Range("C:C"), V1) '検索するテーブルでC列の文字列を探す 'みつけたら、その行、無かったら、エラーのコードが変数に入る If IsError(V2) Then 'テーブルに無かったらなにもしない Else str0 = Worksheets("Sheet2").Cells(V2, 7).Value str1 = Worksheets("Sheet2").Cells(V2, 8).Value str2 = Worksheets("Sheet2").Cells(V2, 9).Value Worksheets("sheet1").Cells(i, 2).Value = str0 Worksheets("sheet1").Cells(i, 3).Value = str1 Worksheets("sheet1").Cells(i, 4).Value = str2 End If End Sub

印刷できない
このQ&Aのポイント
  • プロバイダーを変えてから印刷できない
  • Windows-10で有線LAN接続しています
  • ひかり回線を使用しています
回答を見る