
エクセルVBA、初心者です。
以下の記述でつまづいています。
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
Dim i As Long 'i は行数を For~Nextで変数にしてます
Dim Hbc As Long, Hbc2 As Long 'Hbc は最大11桁の変数
Dim Tsc As Long, Tsc2 As Long 'Tsc は最大5桁の変数
Dim Cd As Long, Cd2 As Long 'Cd は最大4桁の変数
Dim HTC As Long
|
|
長い為、省略
|
|
Hbc2 = 100000000000 + Hbc '(1)
Tsc2 = 100000 + Tsc
Cd2 = 10000 + Cd
HTC = Right(Hbc2, 11, 11) & Right(Tsc2, 5, 5) & Right(Cd2, 4, 4)
Wks1.Cells(i, 1).Value = HTC
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
Hbc、Tsc、Cd は、データベースから取得した数値が入りますが、
桁数がバラバラな為、頭に0を表示してそれぞれの最大桁数に揃えたいのです。
桁数を揃えた後、3つをつないで HTC とし、i 行目の1列目に表示しようとしています。
下記がつまづいて、解決できないでいるトコロです。
************問題点************
(1)の行の
Hbc2 = 100000000000 + Hbc という記述が
Hbc2 = 10000000000# + Hbc に置き換わってしまいます。
***************************
なにぶん、初心者で、単純な間違いかもしれませんが、
どうかご指導、宜しくお願いします。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
常識的なFormat関数を使えば(使って結果の文字列&で結合する)どういう不都合がありますか。
コードだけ挙げて回答者に考えさせるのでなく、データ例に即して説明して質問すべきです。
No.3
- 回答日時:
まず、
>Dim Hbc As Long, Hbc2 As Long 'Hbc は最大11桁の変数
11桁はlongの数値範囲を超えるので、倍精度浮動小数点型か文字列か通貨型でなければ無理。
100000000000#の#はvbeが「これは倍精度浮動小数点型」と判断したのでつけたもの。
>Dim HTC As Long
これはどの数値形式でも表現できないので文字列型に。
Cellにも数値形式での代入は無理で、文字列型にするしかない。
なので、
Dim Hbc As Double(またはCurrency)
Dim HTC As String
...
HTC = Format(Hbc, "100000000000") & Format(Tsc, "100000") & Format(Cd, "10000")
Wks1.Cells(i, 1).Value =HTC
または
Dim Hbc As Double(またはCurrency)
...
Wks1.Cells(i, 1).Value = Format(Hbc, "100000000000") & Format(Tsc, "100000") & Format(Cd, "10000")
では?
No.2
- 回答日時:
すいません。
No1のやり方だと桁落ちしちゃうんですね。文字列として処理するなら
htc = hbc2 & Format(tsc, "00000") & Format(cd2, "0000")
ではいかがでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでアルファベットか数...
-
エクセルで文字列をtxtファイル...
-
EXCELで=より左の文字を一括で...
-
Msgboxの×が押されたとき
-
エクセルで文字列の最大値を抽...
-
sedなどで、特定の文字列の後の...
-
VBの「As String * 128」とは?
-
複数文字列から共通文字列の抽...
-
VBAでの Replace関数で、ワイル...
-
同一セル内に関数と文字列を同...
-
アクセスで特定の数字以外(複...
-
ACCESS VBAで抽出条件の書き方
-
VBA2005 16進を2桁で表示したい。
-
MS Wordのテキスト ボックス フ...
-
UWSCに詳しい方簡単なテキスト...
-
EXCEL VBA----文字列の一部を除...
-
A B C D E の五文字のすべてを...
-
変数内に入った文字列の結合 UWSC
-
ソースコードの中から、日本語...
-
エクセル 数値データを桁をそ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでアルファベットか数...
-
EXCELで=より左の文字を一括で...
-
文字列からタブコードを取り除...
-
VBAでの Replace関数で、ワイル...
-
エクセルで文字列をtxtファイル...
-
エクセルで文字列の最大値を抽...
-
VBの「As String * 128」とは?
-
同一セル内に関数と文字列を同...
-
VBA2005 16進を2桁で表示したい。
-
Excelで指数表現しないようにす...
-
Excelで3E8を3.00E+8にしない方...
-
Left関数とRight関数を合わせた...
-
エクセル 数値データを桁をそ...
-
アクセスで特定の数字以外(複...
-
【Excel VBA】複数ある特定の文...
-
エクセルでセル内の文字列の最...
-
OnTime 使用時のプロシージャへ...
-
LEFT関数で文字数を指定しない...
-
VBAを使って選択した範囲の数字...
-
Msgboxの×が押されたとき
おすすめ情報