• ベストアンサー

Excel でASCII文字列を16進コードへ変換

Excel でA1セルに、 A1セル:”1234” という半角英字の文字列が入力されています。 これをすべてASCIIコードへ変換したいのですが、 何か方法はありますでしょうか? 結果は、 A2セル:”49505152” となることを想定しています。 私なりに調べたのですが、 =CODE(MID(A1,1,1)) & CODE(MID(A1,2,1)) & CODE(MID(A1,3,1)) & CODE(MID(A1,4,1)) なら、期待した結果になっておりましたが、 文字数が多い場合にかなり不効率でした。 他の方法をご教授ください。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.3

さくっとユーザー定義関数を自作してしまった方がスマートですね。 ALT+F11を押す 現れた画面で挿入メニューから標準モジュールを挿入する 現れたシートに下記をコピー貼り付ける public function codes(a1) as string  dim i  for i = 1 to len(a1)   codes = codes & asc(mid(a1, i, 1))  next i end function ファイルメニューから終了してエクセルに戻る A1に 1234 などを置いて =codes(A1) と計算させる。 =codes(1234) とか =codes("abc") とかもOKです。

iwatobi7
質問者

お礼

VBAを頼らずに、Excelの関数だけで実施することを考えておりました。 やはり、VBAじゃないとだめそうですね。 ご回答ありがとうございます。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

Sub test03() x = Cells(1, "A") s = "" For i = 1 To Len(x) s = s & Asc(Mid(x, i, 1)) Next i Cells(2, "A") = s End Sub 出できる。 ーー ユーザー関数かするなら Function asc2(a) s = "" For i = 1 To Len(a) s = s & Asc(Mid(a, i, 1)) Next i asc2 = s End Function ーー 使い方 シートで B1セルには =asc2(A1) と入れて下方向に式を複写 結果 A列  B列(結果) 1234 49505152 23 5051 45678 5253545556 345 515253

iwatobi7
質問者

お礼

VBAを頼らずに、Excelの関数だけで実施することを考えておりました。 やはり、VBAじゃないとだめそうですね。 ご回答ありがとうございます。

  • ssfja
  • ベストアンサー率57% (11/19)
回答No.1

http://code.google.com/p/cowares-excel-hello/wiki/hello_base64 ここの StringToBytes をワークシート関数にして使うってのは どうでしょう。 文字数が固定でなければ、VBAに頼るのがよいです。

参考URL:
http://code.google.com/p/cowares-excel-hello/wiki/hello_base64
iwatobi7
質問者

お礼

VBAを頼らずに、Excelの関数だけで実施することを考えておりました。 やはり、VBAじゃないとだめそうですね。 ご回答ありがとうございます。

関連するQ&A

  • ASCII文字列をEUCなどに変換したいができない

    いつもお世話になっております。 ファイルの文字コードがEUCのファイルの中に、 なぜか、文字コードがASCIIである文字列があります。 この文字列は、外部から受け取るカタチなので、 これはこれで、ASCIIでも、しかたないのかなという風に思い、 それならば、受け取った後、EUCに変換すればいいやと考え、 mb_convert_encoding($var,"EUC-JP","ASCII")を使って、変換を試みるも、 ASCIIのままなのです。 ASCIIである文字列には、変換されない鉄壁さというものがあるのでしょうか? 変換処理後に、mb_detect_encoding()で検査しますが、やはりASCIIのままです。 それならば!、ということで、 受け取る値(ここでは例として、"This_Value_is_ASCII_Encoding_hogehoge9999")を いったん手動のコピペ操作をして、 $UketoruAtai = "This_Value_is_ASCII_Encoding"; とし、 その値もやはり、ASCII文字列になっているので、 この、手動コピペ文字列ならば文字コードの変換はできるだろうと思い、 上記のmb_convert_encoding()の処理をしたわけですが、 この場合でも、やはり ASCIIは鉄壁でした。 いったい、これは、なんなんでしょうか、、、。 ちなみに、このASCII文字列は、英数字のみ(当たり前か。笑)の文字列です。 このASCII文字列を、EUC-JPにする手助けを、どなたか宜しくお願い致します。

    • ベストアンサー
    • PHP
  • Excelの文字数が決まっていない文字列の抽出

    教えてください。Excelで、文字数の決まっていない文字列を抽出したいのですが、例えば、 セルA1 : プロジェクト1 簡単な文章 2352 PD_JOK セルA2 : プロジェクト13 複雑な文章列とは決まっていない 2453 AO_JKI ・・・・・・ というセルから、 プロジェクト名から、半角数字前までの文字数が決まっていない文字列「簡単な文章」や「複雑な文章~」をセルB列に抽出する方法を教えていただきたいのですが、 そして、半角数字後の半角英字「PD_JOK」をセルC列に抽出する方法も同時に教えてください。 万単位でデータがあるので、関数を使わないと難しいです。 よろしくお願い致します。

  • 文字列を文字コードの数値に変換する方法

    JISコードの日本語を含む文字列を、文字コードの数値に変換する方法がわからなくて困っています。とりあえずは文字列ではなく、1文字だけ変換することを目指してord関数を使ったんですが、1バイト文字はうまくいったのですが、2バイト文字だと思うような結果になりませんでした。 例)以下のように変換したいです。 「a」→「97」 「あ」→「9250」 どなたかいい方法や関数をご存じないでしょうか? ちなみに下記のように片っ端から試してみたのですが、思うような結果が得られませんでした。 $buf = mb_convert_encoding($_POST["string"], "JIS", "EUC-JP"); $jis_code1 = ord("$buf"); $jis_code2 = bin2hex("$buf"); $jis_code3 = urlencode("$buf"); $jis_code4 = intval("$buf");

    • 締切済み
    • PHP
  • 文字コード

    ある変数$aaaに文字列が入ってくるのですが $code = getcode( $aaa ); で文字コードを調べると、asciiと返ってきます。 文字コードをeucに変換したいので Jcode::convert(\$aaa,'euc'); としても文字コードはasciiのままです。 どのようにしたら eucに変換できるのでしょうか?

    • ベストアンサー
    • Perl
  • エクセルの文字列としての数値

    エクセルでは「’」を付けるか、セルを文字列とするかで、数字を文字列として認識させられるようですが、ここで文字列として認識された数値はASCIIにおける、文字列としての数認識コードとやはり同じなのでしょうか?それともエクセル独自のものと解釈した方がよいのでしょうか?

  • エクセルの文字列を数式に変換する方法

    エクセルに「=A1+A2」という文字列を値コピーでペーストしたのですが、この文字列を簡単に数式に変換する方法はないでしょうか?                              文字列のはいったセルをダブルクリックすれば、文字列が数式にかわって、A1+A2を計算しれくれるのですが、ひとつひとつのセルをダブルクリックするのが大変で・・・。 よろしくお願いいたします。

  • エクセルで文字列を変換

    エクセルで、複数のセルを選択状態にします。 選択されているセル内に、一つでも文字列が存在していれば、その文字列を◎に変換する方法で、なるべく素早くできる方法を教えて頂きたいのですが。 (スペースのみが存在している時は、そのままです) 例 あ      → ◎ FReSえ  → ◎ e35r8$#  → ◎

  • 16進数の文字列をアスキーコード表を使用して変換

    16進数の文字列をアスキーコード表を使用して変換したいと思っています。 例えば 97 98 = ab 99 100 101 = cde 何か良い関数はありますか? また、文字列長も任意で変わるので、文字列長に応じて任意で 変換したいと思っています。 やはりマクロが必要ですか?

  • 文字列を含むセルを数値に変換する方法

    79062150007という数字の7906という部分だけ取り出すのに、midを使ってやってみたのですが、 =mid(文字列,1,4) とそのまま残るだけで、うまく変換しません。 文字列を数値に変換する方法を調べ、色々試してみたのですが、うまくいきません。 どうすれば良いのでしょうか?

  • Excel 文字列抜き出しについて

    図のようにA1のセルに半角空欄の混じった文字列が入っています。 半角空欄は[ _ ]赤のアンダーバーで表してあります。 B1~G1セルのように文字列を抜き出すにはどのような数式を入力したらいいのでしょうか?

専門家に質問してみよう