エクセル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で質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
- Excel(エクセル) VBA オリジナル関数で選択セルの合計を作成したい 3 2023/03/19 19:45
- Visual Basic(VBA) VBA処理追加 こちらでご教示頂いたのですが回答完了させてしまいましたのでこちらからまた質問させてく 2 2022/10/27 09:57
- Visual Basic(VBA) 稀に1円合いません? Sheet1から金額と個数を貼り付ける下記コードで、金額を切り上げるコードを何 3 2022/09/05 15:11
- Visual Basic(VBA) 数字が「0」の列を削除するため、下記のコードを実行しましたが、コンパイルエラーSubまたはFunct 3 2022/12/04 00:00
- Visual Basic(VBA) VBAで質問ですが、皆さんはどの様に導き出しているのでしょうか? 6 2022/05/03 21:53
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelはなんで先頭の0を消すん...
-
マクロ処理でのループの記述に...
-
エクセルでアルファベットか数...
-
エクセルで文字列の最大値を抽...
-
VBAマクロ クリップボードから...
-
アクセスで特定の数字以外(複...
-
C言語で文字列の中の文字列のカ...
-
Excelで偶数行だけ文字列を数え...
-
文字列のある行数を表示する
-
エクセルマクロ 特定の文字列...
-
C初心者です。配列に文字列を代...
-
bashスクリプトでの文字列から...
-
【Excel VBA】複数ある特定の文...
-
googleスプレッドシートでカッ...
-
vba 8桁の文字列を日付に変更
-
VBA テキストボックスの計算
-
SQL の Update文(?) と ...
-
Excelで3E8を3.00E+8にしない方...
-
EXCELで=より左の文字を一括で...
-
delphiにて 文字列の最後の改...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでアルファベットか数...
-
EXCELで=より左の文字を一括で...
-
文字列からタブコードを取り除...
-
Excelで3E8を3.00E+8にしない方...
-
VBAでの Replace関数で、ワイル...
-
Excelで指数表現しないようにす...
-
[C言語]fputsとfprintfの違い
-
エクセルで文字列をtxtファイル...
-
同一セル内に関数と文字列を同...
-
エクセルで文字列の最大値を抽...
-
Excelはなんで先頭の0を消すん...
-
MS SQLServer のSQLで文字列の...
-
エクセル 数値データを桁をそ...
-
Left関数とRight関数を合わせた...
-
VBA2005 16進を2桁で表示したい。
-
VBの「As String * 128」とは?
-
Msgboxの×が押されたとき
-
sedなどで、特定の文字列の後の...
-
【Excel VBA】複数ある特定の文...
-
OnTime 使用時のプロシージャへ...
おすすめ情報