• ベストアンサー

末尾に#がつくのは vba

Sub test() Dim i As Long i = 2000000000 i = 3000000000# End Sub この場合、 2000000000は問題ないけど、 3000000000から末尾に#が付きました。 どの数字からシャープが付くのでしょうか? またシャープの意味はなんでしょうか? vbaのコードを実行するにおいて、#があってもエラーになりませんでした。

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

  • ベストアンサー
  • ap_2
  • ベストアンサー率64% (70/109)
回答No.2

そのこーど、オーバーフローすると思うよ・・・ Long型@VBA(4byte)で表現できる数字は -2,147,483,648 ~ 2,147,483,647 > シャープの意味はなんでしょうか? # は As Double と同じ意味で、変数やリテラルの後につけて型を指定します。リテラル(コード上に直接書かれた値)にも型の区別はあるです。 > どの数字からシャープが付くのでしょうか? VBEの#付与は、-2147483648以下と2147483648以上の整数、1.0などの小数(ピッタリ1ではないって意味?)。たぶん、型の指定というより明示。Doubleだから注意しろよってコトだと思う。オーバーフローとか。 ※ANo.1のリンクは.netなんで、サイズ倍になってます。 VBAはコッチ↓ 内容はうすっぺらいけど・・・ http://msdn.microsoft.com/ja-jp/library/gg251528.aspx

axjrpwttechay
質問者

お礼

ありがとうございました。

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

その他の回答 (1)

  • t-aka
  • ベストアンサー率36% (114/314)
回答No.1

データ型です。Long型とDouble型になります。 以下を参照ください。 http://msdn.microsoft.com/ja-jp/library/47zceaw7(v=vs.80).aspx http://msdn.microsoft.com/ja-jp/library/s9cz43ek(v=vs.80).aspx

axjrpwttechay
質問者

お礼

ありがとうございました。

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

関連するQ&A

  • long型 #が付く場合とつかない場合の違い

    Sub test() Dim i As Long i = 2000000000 i = 3000000000# End Sub こうすると、2000000000が末尾にシャープはつかないのに、 3000000000だとシャープが付きます。 なぜですか?

  • VBA 100億になると#が自動で付く

    下記のコードを見てください。 Option Explicit Sub test1() Dim i As Long i = 1000000000 End Sub Sub test2() Dim i As Long i = 10000000000# End Sub test2の#は私が付けたものではありません。 test1より一つ多く0を付けたら勝手に付きました。 どうしてなのでしょう? 不思議です。

  • レジストリエディタを起動させて手前に表示させたい

    VBE画面から Sub test() Dim i As Long i = Shell("C:\WINDOWS\regedit.exe") End Sub を実行するとレジストリエディタを起動できるのですがアクティブ(前画面)になりません。 Sub test() Dim i As Long i = Shell("C:\WINDOWS\regedit.exe") AppActivate i End Sub これにしたも同じく全画面になりません。 ただ、一度起動した後に再度このコードを実行すると、 プロシージャの呼び出し、または引数が不正です。(Error 5) と言うエラーになりますが、1回目に開いたレジストリエディタがアクティブになります。 vbaコードで起動だけではなく、手前に表示させるにはどうすればいいですか?

  • プロシージャーの外で宣言した変数の値の破棄の仕

    プロシージャーの外で宣言した変数の値の破棄の仕方について教えてください。 ++++++++++++++++++ Dim i As Long Sub test() i = i + 10 MsgBox i End Sub ++++++++++++++++++ を実行すると、どんどん値が増えていきますが、 回避するには、 ++++++++++++++++++ Dim i As Long Sub test() i = i + 10 MsgBox i i = 0 End Sub ++++++++++++++++++ とするしかないのでしょうか? ++++++++++++++++++ Dim i As Long Sub test() i = i + 10 MsgBox i Set i = Nothing End Sub ++++++++++++++++++ としたら、エラーになりました。

  • vba 四捨五入 について教えてください。

    VBA初心者です。お世話になりますがよろしくお願いします。 vbaでRound関数を使って四捨五入したいと考えております。 以下のコードで実行するとエラー(プロシージャの呼び出し,または引数が不正です。)が出ます。 何がなんだかわからずに困っております。 どうかご教授よろしくお願いします。 Sub 計算() Worksheets("abc").Activate Dim LastRow As Long Dim i As Integer LastRow = Worksheets("abc").Range("K65536").End(xlUp).Row For i = 6 To LastRow If Cells(i, 11) = 0 Then Cells(i, 12) = "" Else Cells(i, 12) = Round(Cells(i, 9) / Cells(i, 11),-2) End If Next End Sub

  • VBA Replaceで

    Win7、Excel2010使用。 VBAにて下記のコードを作成。 シート内のある範囲において、セル中に漢字と数字(算用)が 混在した文字列があり、Replaceにて数字を取り除く為に作成 しましたが、実行したところ、正常に動作して全て取り除ける場合と、 そのまま数字が全て残る場合があります。 指定した範囲は、別のブックから値のみコピーして 貼り付けたもので、書式は「標準」にしています。 ※元データも「標準」の文字列です。 下記コード以外でもいくつか試しましたが、改善見られなかっ為、 コードの問題ではなく、文字列の問題なのかなとも思いましたが、 よくわかりませんでした。 解決策などがありましたら教えて頂けると助かります。 よろしくお願いします。 =(VBAコード)= Sub NumDell() '余分な数字を削除します。 Application.Calculation = xlCalculationManual Dim r As Long Dim c As Long Dim i As Long  Call hen 'Public変数を設定。単独実行時のみ For r = 53 To Lr2 Step 2 For c = 3 To dc If c = 9 Then Stop End If With Cells(r, c) For i = 1 To 9 .Replace CStr(i), "" .Replace StrConv(CStr(i), vbNarrow), "" Next i End With Next c Next r Application.Calculation = xlCalculationAutomatic End Sub ------------------------- ※変数は、関連コードあるため、Public変数を使用しています。

  • VBA マクロ実行にてエラーが出ますが、原因を教えてください

    下記コードを実行すると、myCell.Selectのところで 実行時エラー’91’ オブジェクト変数またはWithブロック変数が設定されていません。 というエラーが出るのですが、どうすれば対策出来るのでしょうか? Sub test() Dim i As Long Dim myCell As Range With Range("A1").CurrentRegion For i = 2 To .Rows.Count Step 2 If i = 2 Then Set myCell = .Rows(i) Else Set myCell = Application.Union(myCell, .Rows(i)) End If Next i End With myCell.Select End Sub

  • VBAのUserFormでサブルーチンを用いる

    UserFormのコードに次のように書いてbuttomを押してみると コンパイルエラー:ByRef引数の型が一致しません。 と出てしまいます。 どこが間違っているのでしょうか?ご回答お願いします。 Private Sub buttom_Click() Dim i As Integer Dim name As String i = 1 name = "名前" Call test(i , name) End Sub ---------------------------------------------- Sub test(i As Integer, name As String) Cells(i , 1) = name End Sub

  • フォルダの中のファイル数を取得するには vba

    手作業でフォルダのプロパティからファイルの数を確認することはできるのですが VBAで(FSOなど)、該当のフォルダの中に何個ファイルが入ってるかを確認するコードはありますか? Sub test() Dim MyFileName As String Dim MyFolderName As String Dim i As Long MyFolderName = "\○○\icon" MyFileName = Dir(MyFolderName & "\*.*") Do While MyFileName <> "" MyFileName = Dir() i = i + 1 Loop MsgBox i End Sub このようなコードを作ってみたのですが、 画像のように実際に目で確認したファイル数と一致しません。 正しい数が取得できるvbaコードはありますか?

  • 1列目の何行目に検索文字があるかを取得したい

    しかしエラーになってしまいます。 エラーの原因がわかりません。 シートの1列目のどこかに「test」と入っている行があるのですが Sub test1() Dim myRow As Long With Sheets("Sheet") myRow = .Column(1).Find(What:="test").Row MsgBox .Cells(myRow, 1) End With End Sub このvbaコードを実行するとエラーになります。 コードとしては「.Column(1)」で1列目と言う意味で、 .Find(What:="test")で、何行目に「test」があるかを取得するという意味だと思うのですが 実行時エラー438が発生します。 実際にtestと言う文字は2行目にあるのですが なぜmyRowに2が代入されないのでしょうか?

感謝されて働きたい夫
このQ&Aのポイント
  • 一つ年上の旦那が「給料上がった」「ボーナス出た」等の事を私に言っても反応が薄いと。自分が稼いでくるのが当たり前に思ってて感謝がない、こんなこと言わせて惨めになると意気消沈。
  • 私は旦那に養ってもらいたくて結婚したわけじゃないという思いと、中学と小学の子育てをほぼ私が担っていだことを当たり前に思っていて仕事の苛立ちを家庭に持ち込み私は大変だったという思いがあります。
  • 私がもっと旦那に頼り旦那のおかげで生きているという女であれば良かったように思いますが……どうにもそんな女にはなれそうにありません。そんな事を言って私という一個人を軽視するような旦那に苛立ちを感じてしまいます。
回答を見る

専門家に質問してみよう