『ボヘミアン・ラプソディ』はなぜ人々を魅了したのか >>

仕事の都合で、JISコードを調べなければならなくなったのですが、
調査対象がいっぱいあって困っています。
excel(に限りませんが、excelが使い慣れているので)の関数などで、
文字コードを返してくれる関数などってありますか?
CODE関数を試してみたのですが(=CODE(山))、循環参照というエラーが出てしまって困っています。
できれば複数の文字(1行単位など)が一度に文字コード変換ができればいいのですが、無理なら1文字ごとでもいいので探しています。
教えてください。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

文字列がA1にあると仮定して、



B1に下記数式を記入して、右方向にフィルコピー♪
=IF(ISERROR(CODE(MID($A$1,COLUMN(A1),1))),"",CODE(MID($A$1,COLUMN(A1),1)))

この中で、「COLUMN(A1)」はセル番地を変更しなくていいです。
実際に文字が存在する番地に合わせて変更するのは、
「MID($A$1」 このMIDの右のセル番地だけです。

これでセルに含まれた文字数分、右にコピーすれば
一文字づつコードが返ります。
    • good
    • 0
この回答へのお礼

thanksです。
非常に便利なものをありがとうございました!

お礼日時:2007/10/30 15:03

山を調べるなら、


>CODE関数を試してみたのですが(=CODE(山))
ではなく、
=CODE("山")
とするか、セルA1に”山”として
=CODE(A1)
で求められます。

尚、ヘルプにも書いてありますが、
この関数は、1文字(先頭文字)のみコード変換しません。
    • good
    • 0
この回答へのお礼

ありがとうございました。
ケアレスミスでした、申し訳ない。

お礼日時:2007/10/30 14:54

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QVBAでコードから漢字に変換するのは

VBAを使用していますが、コードから漢字を求める方法が見つかりません。
たとえば、3021から漢字の亜を求めたいのですが。
1バイト文字ならChr関数で求められますが、2バイト文字、つまり、漢字を求める方法が見つからないのです。 どなたか教えていただきたいのですが。

Aベストアンサー

一人で回答を汚しています。すいません。
一応、VBAの中だけでできました。JisからShiftJisに変換しています。何個かの漢字で確かめましたが全部ではないので何かあるかも・・・

Sub jiscode2Kanji()
Dim kjCD As String

kjCD = "3021" '*** これをセット ***

Jis2ShiftJis Val("&H" & Mid(kjCD, 1, 2)), Val("&H" & Mid(kjCD, 3, 2))
End Sub

Sub Jis2ShiftJis(HiByt As Double, LoByt As Double)
'下位バイト
If HiByt And 1 Then
If LoByt < &H60 Then
LoByt = LoByt + &H1F
Else
LoByt = LoByt + &H20
End If
Else
LoByt = LoByt + &H7E
End If
'上位バイト
If HiByt < &H5F Then
HiByt = (HiByt + &HE1) \ 2
Else
HiByt = (HiByt + &H161) \ 2
End If
'漢字
Dim knjCode As Double
knjCode = HiByt * &H100 + LoByt
If knjCode < 0 Then
knjCode = knjCode + 65536
End If
Range("A1") = Chr(knjCode)
End Sub

一人で回答を汚しています。すいません。
一応、VBAの中だけでできました。JisからShiftJisに変換しています。何個かの漢字で確かめましたが全部ではないので何かあるかも・・・

Sub jiscode2Kanji()
Dim kjCD As String

kjCD = "3021" '*** これをセット ***

Jis2ShiftJis Val("&H" & Mid(kjCD, 1, 2)), Val("&H" & Mid(kjCD, 3, 2))
End Sub

Sub Jis2ShiftJis(HiByt As Double, LoByt As Double)
'下位バイト
If HiByt And 1 Then
If LoByt < &H60 ...続きを読む

Q文字コードの変換(JISコードへ)

VBコーディングで質問です。。

テキストをファイルで保存する際に、JISコードで保存するにはどうすればよいのでしょうか。

処理的には、
テキストを*.datファイルで保存するのですが。

'ファイルパスを取得
sFilePath = "A:\aaa.dat"

''使用可能なファイル番号を取得
iFileNo = FreeFile
Open sFilePath For Output As iFileNo

''ファイルに書き込む
Print #intFileNo, "oneline"
Close #intFileNo

上記のような処理をしています。
ファイルに書き込む前に、StrConv関数でvbFromUnicodeでコンバートすると文字化けしてしまう様子なので、
現在は特にコンバート処理はしていません。
しかし、この方法で保存すると保存した後のファイルはShift-JISになっているようなんです。。

Shift-JISではなく、JISコードで保存したいのですが何かいい方法はありませんでしょうか。
よろしくお願いします。

Win2000ProSP2
VB6.0SP5

VBコーディングで質問です。。

テキストをファイルで保存する際に、JISコードで保存するにはどうすればよいのでしょうか。

処理的には、
テキストを*.datファイルで保存するのですが。

'ファイルパスを取得
sFilePath = "A:\aaa.dat"

''使用可能なファイル番号を取得
iFileNo = FreeFile
Open sFilePath For Output As iFileNo

''ファイルに書き込む
Print #intFileNo, "oneline"
Close #intFileNo

上記のような処理をしています。
ファイルに...続きを読む

Aベストアンサー

intFileNoがintFlagと間違えて入力していました。
あと、半角カナの処理が抜けていました。
修正しましたが、動作検証はとっていません。

strFilePath = "A:\aaa.dat"
intFileNo = FreeFile
Open strFilePath For Binary As intFileNo

lngLen = Len(strText)
intFlag = 0

For i = 1 To lngLen
intCode = Asc(Mid$(strText, i, 1))
If intCode >= &H8140 Then
If intFlag <> 2 Then
intFlag = 2
Put #intFileNo, , &H1B
Put #intFileNo, , "$B"
End If
intHiCode = intCode \ &H100
intLoCode = intCode Mod &H100
intHiCode = intHiCode - IIf(intHiCode <= &H9F, &H71, &HB1)
intHiCode = intHiCode * 2 + 1
If intLoCode >= &H9F Then intHiCode = intHiCode + 1
If intLoCode > &H7F Then intLoCode = intLoCode - 1
intLoCode = intLoCode - IIf(intLoCode >= 9E, &H7D, &H1F)
intCode = intHiCode * &H100 + intLoCode
ElseIf intCode > &H80 And intCode <= &HDF Then
If intFlag <> 1 Then
intFlag = 1
Put #intFileNo, , &H1B
Put #intFileNo, , "(I"
End If
intCode = intCode - &H80
ElseIf intFlag <> 0 Then
intFlag = 0
Put #intFileNo, , &H1B
Put #intFileNo, , "(B"
End If
Put #intFileNo, , intCode
Next i

Close #intFileNo

intFileNoがintFlagと間違えて入力していました。
あと、半角カナの処理が抜けていました。
修正しましたが、動作検証はとっていません。

strFilePath = "A:\aaa.dat"
intFileNo = FreeFile
Open strFilePath For Binary As intFileNo

lngLen = Len(strText)
intFlag = 0

For i = 1 To lngLen
intCode = Asc(Mid$(strText, i, 1))
If intCode >= &H8140 Then
If intFlag <> 2 Then
intFlag = 2
Put #intFileNo, , &H1B
Put #intFileNo, , "$B"
End ...続きを読む

QEXCEL VBA で現在開いているブックのファイル名を取得する方法

EXCEL2003 VBAで業務を簡素化するために、現在開いているブックのファイル名を取得する方法が分かりません。
作業手順をマクロを使って処理していますが、オリジナルのワークブックをファイル名を変えて保存し、以後、このワークブックを読み込んで使用しています。
このときのVBAは、オリジナルのファイル名を使っているため、ファイル名を変更するとエラーになり、以後の業務に使用できません。
常にファイル名を取得出来るVBAをどなたか、教えて下さい。

Aベストアンサー

>現在開いているブックのファイル名
 ちょっと曖昧な表現かなぁという気もいたしますが、VBAが書いてあるブックのブック名は
ThisWorkbook.Name
で、現在 "アクティブにして" 操作対象になっているブックの名前は
ActiveWorkbook.Name
ですね。

 しかし、
>VBAは、オリジナルのファイル名を使っているため、ファイル名を変更するとエラーになり
というような文脈からすると、
ThisWorkbook.Name
の方ですかね。

QEXCEL VBAで計算値を四捨五入、切り上げ、切捨てする方法

ネットで探してみたのですが、計算結果を四捨五入して特定のセルを
返すにはどうしたらいいのでしょうか?

Sub hokangosa()

Dim ZPS As Double
Dim ZPOS As Double
Dim DMN As Double
MsgBox (" >>> 補間誤差自動計算 <<< ")
MsgBox (" >>> 初期値入力します <<< ")
ZPS = InputBox(">>> ステップを入力してください<<<")
ZPOS = Sheet1.Cells(22, 4).Value
DMN = ZPOS / ZPS
Sheet1.Cells(23, 6).Value = DMN
End Sub

ここでDMNの値を四捨五入したいです。

またこれとは別に切上げ、切捨ても教えていただけるとありがたいです。

Aベストアンサー

DMN = Application.WorksheetFunction.Round(ZPOS / ZPS, 0)
で、四捨五入
DMN = Application.RoundDown(ZPOS / ZPS, 0)
で切り捨て
DMN = Application.RoundUp(ZPOS / ZPS, 0)
で切り上げです。

引数で、対象桁を変更できます。

QEXCELファイルのカレントフォルダを取得するには?

EXCELファイルのカレントフォルダを取得するには?

C:\経理\予算.xls

D:\2005年度\予算.xls

EXCEL97ファイルがあります。

VBAで
  カレントフォルダ名
(C:\経理\,D:\2005年度\)
を取得する事は可能でしょうか?

CURDIRでは上手い方法が見つかりませんでした。

Aベストアンサー

こんばんは。
Excel97 でも、同じですね。以下で試してみてください。

Sub test()
'このブックのパス
a = ThisWorkbook.Path
'アクティブブックのパス
b = ActiveWorkbook.Path
'Excelで設定されたデフォルトパス
c = Application.DefaultFilePath
'カレントディレクトリ
d = CurDir
MsgBox "このブックのパス   : " & a & Chr(13) & _
   "アクティブブックのパス: " & b & Chr(13) & _
   "デフォルトパス    : " & c & Chr(13) & _
   "カレントディレクトリ : " & d & Chr(13)
End Sub

Q文字コードの調べ方を教えて下さい。

文字コードの調べ方を教えて下さい。
外字を作るため、文字コード表から参考の漢字を表示したいのです。
文字コードを調べる方法を教えて下さい。

Aベストアンサー

Word2002以降
文字が解っているなら
文字を入力
入力した文字の直後に文字キャレットがある状態で
Alt+X とキー操作すればUnicodeの文字コードに変換されます。
再度、Alt+X とキー操作すれば元の文字が表示されます。
Windows XPの外字エディタはUnicode仕様だったと思います。

文字コードを使わなくても
「参照」ダイアログの「形」の処に入力、あるいはコピペすることができます。

外字エディタの使い方
http://www.gon-net.jp/windows/gaizi/gaizi.htm

Q16進数を10進数に変換する方法...

お初にお目にかかります(^^)
簡潔に質問しますm(_ _)m

バージョン:MS-Visual Basic6.0
質問内容:
16進数を10進数に変換する方法がわかりません。
Hex(Text1.Text) や Oct(Text1.Text) のような方法で
16進数・8進数に変換できるんですが…
10進数に変換する方法がわかりません。

P.S できれば、16進数→10進数、16進数や10進数→2進数
…に、変換する方法も、よろしければ教えてくださいませ
m(_ _)m

Aベストアンサー

16進数→10進数は

Dim StrHex As String
Dim intVal As Integer
StrHex = "1A"
intVal = Val("&H" & StrHex)

で出来ます。


申し訳ありませんが2進数への変換はよく分かりません。

QVisual Basic でのコードをASCII変換、16進変換したものを元に戻す方法を教えてください

string(9)のエリア"Aa1アあa "の文字を1文字ずつASCII変換して、16進変換し、string(18)のエリアに格納します
すると"416131B182A08281202020"と変換されます
(一文字ずつ Hex(Asc(Buf))を使用しました)

逆に、"416131B182A08281202020"を"Aa1アあa "に戻したいのですが、
どのような関数を使えばよいのかわかりません。
困っています。教えてください。よろしくお願いいたします。

Aベストアンサー

VB既存の関数ではできないと思うので、自分で関数を作るなりしてください。

ヒントです。
ASC関数により変換された2バイト文字(シフトJIS)の1バイト目は81~9FおよびE0~FC(すべて16進)になります。
16進数から10進数に戻すには、頭に"&H"をつけます。(&H82A0 = 「あ」のシフトJISコード)
文字を数字に変換するのはVal関数、数字(文字コード)から文字に変換するのはChr関数です。

Q別のシートから値を取得するとき

Worksheets("シート名").Activate
上記のを行ってから別シートの値を取得するのですが、
この処理を行うと指定したシートへ強制的にとんでしまいます。。。

※イメージ
For ~ To ~
  Worksheets("シートA").Activate
  シートAの値取得
       :
  Worksheets("シートB").Activate
  シートBの値取得
Next

このイメージ処理を行うとものすごい勢いで画面がチカチカします。。。
シートを変えずに他のシートから値を取得する方法はないのでしょうか。
教えてください!

Aベストアンサー

Worksheets("シートA").Range("A1")

みたいな感じでできませんか?

QEXCELの文字列操作で文字数不足の分をスペースで補う方法

EXCELの文字データを取り出す際に以下のような操作を行いたいんですが、方法をご存知の方がいらっしゃいましたら教えていただけませんでしょうか。

既にデータの入力されているセルの文字数が、ある一定数に満たない場合は不足分を半角スペースで補う

【例】文字数を15と指定したとします
セルに入力されたデータ:山田_ 太郎
   ↓
求めたいデータ:山田_ 太郎_ _ _ _ _ _
(山田の後に半角スペースが1、太郎の後に半角スペースが6つ入っていると仮定してください)

※TEXT関数で数値の文字数不足分を0で埋めるということはできたのですが、TEXT関数は数値のみを対象としているようで・・・。
【例】12345 → 000000000012345

よろしくお願いいたします。

Aベストアンサー

A1に「山田 太郎」が入っている場合、
 =LEFTB(A1&REPT(" ",15),15)
と式を立てればOKです。

LEFBは、左側から指定バイト分(半角1バイト・全角2バイト)を抜き出す関数。
REPTは、所定の文字をくり返す関数です。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング