[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 05/30 05:22 / Filesize : 296 KB / Number-of Response : 978
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Excel VBA 質問スレ Part23



1 名前:既定のプロパティさん mailto:sage [2012/01/29(日) 00:05:13.16 ]
01 pc11.2ch.net/test/read.cgi/tech/1054356121/
02 pc11.2ch.net/test/read.cgi/tech/1168308855/
03 pc11.2ch.net/test/read.cgi/tech/1180192018/
04 pc11.2ch.net/test/read.cgi/tech/1189814602/
05 pc11.2ch.net/test/read.cgi/tech/1197448064/
06 pc11.2ch.net/test/read.cgi/tech/1205231499/
07 pc11.2ch.net/test/read.cgi/tech/1212587819/
08 pc11.2ch.net/test/read.cgi/tech/1219673793/
09 pc11.2ch.net/test/read.cgi/tech/1228372971/
10 pc12.2ch.net/test/read.cgi/tech/1235332603/
11 pc12.2ch.net/test/read.cgi/tech/1241885130/
12 pc12.2ch.net/test/read.cgi/tech/1247566074/
13 pc12.2ch.net/test/read.cgi/tech/1254281104/
14 pc12.2ch.net/test/read.cgi/tech/1262748898/
15 pc12.2ch.net/test/read.cgi/tech/1271261239/
16 hibari.2ch.net/test/read.cgi/tech/1280045912/
17 hibari.2ch.net/test/read.cgi/tech/1289182437/
18 hibari.2ch.net/test/read.cgi/tech/1298240666/
19 hibari.2ch.net/test/read.cgi/tech/1305754555/
20 hibari.2ch.net/test/read.cgi/tech/1312435844/
21 hibari.2ch.net/test/read.cgi/tech/1316931607/

前スレ:
Excel VBA 質問スレ Part22
toro.2ch.net/test/read.cgi/tech/1322400978/


678 名前:デフォルトの名無しさん mailto:sage [2012/03/15(木) 21:59:45.52 ]
結局669はVBAを使ってはいるけれど
プログラミングの仕事ではないってこと?

679 名前:デフォルトの名無しさん mailto:sage [2012/03/15(木) 22:01:22.71 ]
>>676
お役所?

680 名前:デフォルトの名無しさん mailto:sage [2012/03/15(木) 22:04:50.80 ]
>>676
大阪市?
ここだけの話で

681 名前:676 mailto:sage [2012/03/15(木) 22:09:47.46 ]
>>678
一応、仕事の名目は
エクセルでのデータ整理です

>>679
公務員じゃないけど似たようなもんです。
業務の成果は求められてなくて、
ただ単に労働時間分の拘束をされてるだけって感じです。

>>680
ちゃいまっせ、ホンマにちゃいまっせw


682 名前:デフォルトの名無しさん mailto:sage [2012/03/15(木) 23:12:01.77 ]
マクロの記録てこういうときにつかえるんだなあみつを

683 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 00:43:25.24 ]
ちょこっとわからない程度なら、部分的にマクロ記録のコードコピペしてます。
スピードも全く問題ないことがほとんど、使えなかった頃より実質こなせる業務がかなり増えた。

684 名前:586 [2012/03/16(金) 05:51:54.44 ]
忙殺されて、、、レス遅くなってすみません。

>>620->>624
皆さん、ありがとうございます。

会社のPC(WinXP Pro SP3/Excel 2003 SP3/メモリ2G)
でもやはり44シート目で実行時エラーでした。

手持ちのもう一つのネットブック(Win7 32bit版/Excel2010/メモリ1G)
で試したら、エラーは出ず、なんと、500シートでも動きました。

2003のバグですかね。。

ありました・・・これですね。
support.microsoft.com/kb/210684/ja

-------
ブックに定義済みの名前を付けて保存したり、次のサンプル コードのように、ブックを閉じることがなく複数回ワークシートをコピーするとこの問題が発生することができます。
-------

発生することができます・・って・・・・

685 名前:586 [2012/03/16(金) 05:52:55.59 ]
>>623
ええと、マクロ実行して、1004が出たての未保存のブックは、シートの追加はできても、シートのコピーはできません。
(エラーも出ず、一瞬画面がブレたようになって無反応)
いったん、保存して開きなおしたファイルだと、シートのコピーはできますが、再び、マクロを実行すると、

実行時エラー'1004':
シートの名前をほかのシート、Visual Basic で参照されるオブジェクト ライブラリまたはワークシートと同じ名前に変更することはできません。

となって止まり、
ブックをみると、test1を押した場合は、「テンプレ(2)」を、test2を押した場合は、「テンプレ2 (2)」のシートを追加しようとしてるところで、また同じ名前で追加しようとして、止まってる感じ・・・
ActiveSheet.Name =
がうまくいってないような感じです。

しかもエラーの回数はなんか毎回、44です。。PCに他にどんな重い処理をさせていても44。。会社のPCもそうでした・・。

なんだコレ・・私のやり方が何かおかしいのか・・・

686 名前:586 [2012/03/16(金) 05:55:19.72 ]
このKBを見る限り、2007でも、2010でも発生するみたいですね。。
www.microsofttranslator.com/BV.aspx?ref=CSSKB&lo=SS&from=en&to=ja&a=http://support.microsoft.com/kb/210684/en-us?fr=1

テンプレートで保存して呼び出して使えって・・・。Vlookupで引っ張ってて、複数のシートがあっても大丈夫なんかな・・・

それとも100シートごとに保存するか・・・

それともシート挿入→末尾に移動→値の貼り付け→書式の貼り付け→印刷設定の貼り付け
という関数を作っておくか・・・

印刷設定がちゃんとなってるシートの印刷を手前において、反映したいシートを複数選択し、
印刷設定を開いてそのままOKボタンを押すと、複数のファイルに印刷設定が反映されるって
書いてあって、実際その通りだったけど、ウィンドウ枠の固定と、印刷タイトルの設定が反映されてなかった・・・

これだけ一個一個やるように関数に組み込むしかないのか・・・



687 名前:586 [2012/03/16(金) 05:56:10.36 ]
そろそろ眠い・・・

しかもこの仕事を引き継ぐ人がマクロとか難しくて嫌だから、手作業でやりたいと言い出して、
このマクロは使われない可能性が高くなってきた・・・

中身なんて知らなくていいから、黙ってボタン押せっつーの!くそ・・・!

でも自己満で作るけどさ。

事務の世界っていつもこうなる・・・やっぱり私に事務は向かないのか・・かと言って、バケモンだらけのPGの世界ではこれ以上やってく自信がない・・・

>>677
あるあるあるあるあるある

=Exact() で簡単に同じかどうかのチェックなんて出来るのに、「目視確認でやった方が確実だから、目視でやって」、とか ┐(´д`)┌


チラ裏すみません。眠いです・・・

688 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 08:09:03.03 ]
>>661
サンクス

689 名前:デフォルトの名無しさん [2012/03/16(金) 09:49:02.14 ]
Valueエラーが出るけどどこが悪いか分かる方いますか?
Function sealtime(A As Range, B As Range)

'Application.Volatile '自作関数を自動再計算させます。
Dim time As Double
time = Application.WorksheetFunction.ATAN((B - A) / 1)

If time < 0.005 Then
sealtime = "OK"
Else
sealtime = ""
End If

End Function

690 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 09:55:24.55 ]
とりあえず
Application.WorksheetFunction.ATAN
より
Atn
のほうがいんじゃね

691 名前:デフォルトの名無しさん [2012/03/16(金) 10:30:21.14 ]
>>689
ワークシート関数が全部VBAで使えるわけじゃない


692 名前:デフォルトの名無しさん [2012/03/16(金) 11:13:02.48 ]
ダブルクリックで画像を挿入したくてネットで調べて色々コピペして作ったんですけどたまにエラーが出ます
あと画像を開こうとしてキャンセルすると『1004 指定したファイルが見つかりませんでした』って出ます
どこを直せばいいでしょうか お願いします

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim myRange As Range
Set myRange = Range("C2:G10,C312:G21,C24:G32")
If Application.Intersect(Target, myRange) Is Nothing Then
Exit Sub
End If
Dim objFileName As String
Dim objShape As Shape
objFileName = Application.GetOpenFilename _
Set objShape = ActiveSheet.Shapes.AddPicture( _
Filename:=objFileName, _
LinkToFile:=False, _
SaveWithDocument:=True, _
Left:=Selection.Left, _
Top:=Selection.Top, _
Width:=242#, _
Height:=120#)
Cancel = True
End Sub

693 名前:デフォルトの名無しさん [2012/03/16(金) 11:32:07.34 ]
あ なんかいけたっぽい こうしたらスムーズになった

sFile = Application.GetOpenFilename(FileFilter:="gif,.gif")
If sFile = "False" Then Exit Sub

694 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 12:12:14.79 ]
エクセル2003のグラフのことで教えてください。
グラフ上のマーカーの上にマウスカーソルを乗せるとデータが表示できますが、
その表示されたデータを取得することはできないでしょうか?
もしくは、そのマーカーに対応するセルをアクティブにする方法でもいいです。
どなたか、よろしくお願いします。

695 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 12:32:19.74 ]
>>694
できません

696 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 12:50:50.80 ]
>>694
マーカーに透明なラベルを被せたら余裕で何でもできる



697 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 15:24:36.03 ]
for each でレンジ範囲の文字列数え上げるとき、数え残すことある?

698 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 15:27:49.62 ]
>>697
例えば?

699 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 15:35:26.75 ]
count = 0
for each a in range("a1:e5)
if("あほ"=a.value) then
count =count +1
end if
next a

で、

for b =1 to a
にしてるんだけど、bがバグる


700 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 15:35:57.24 ]
さいごにnext bは入れてる

701 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 15:41:28.29 ]
>>699
aって何?

702 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 15:41:47.29 ]
>>699
○ For b = 1 To count
× For b = 1 To a


703 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 15:45:00.17 ]
ああcountにしてるけどバグる

704 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 15:45:45.84 ]
>>703
バグる?

705 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 15:52:53.95 ]
>>699
699がかなりあほってことでよろしいか?

706 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 15:54:53.70 ]
bに同じ数続くことがあるのでする



707 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 15:57:41.20 ]
マクロ記録をそのまま使ってる人いますか?
やはり自分で全部書くのが普通でしょうか。

708 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 16:22:56.46 ]
>>707
状況によるけど
そのままでは使い物にならないことが多い

ていうか、記録した方が早い部分と、自分で書いた方が早い部分とがあるので
うまく組み合わせた方が結果的に早くプログラムが完成する

709 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 23:26:58.50 ]
>>696
> >>694
> マーカーに透明なラベルを被せたら余裕で何でもできる
やり方教えてクレクレ

710 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 23:51:19.86 ]
DOSのコマンドライン引数を取得できないの?

Sub Workbook_Open
For I = 0 To ARGC -1
Debug.Print ARGV(I)
とか。

711 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 00:08:29.34 ]
>>709
そんな態度で教える馬鹿がいるか

712 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 00:09:20.05 ]
うっはwwwwwwいま気づいたんだけどもしかして時間かかる作業させるときってさいごにシート保存するコードとか入れたりするの当たり前だったりするわけですよねですよねえええ

713 名前:デフォルトの名無しさん [2012/03/17(土) 00:11:35.15 ]
あたりまえだ

714 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 00:14:16.48 ]
ああもしかして指定時刻にセーブする処理とか入れてリスク管理してみたりするのかあああ

715 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 00:34:43.42 ]
>>711
おしえれ

716 名前:デフォルトの名無しさん [2012/03/17(土) 10:26:53.14 ]
>>710
> DOSのコマンドライン引数を取得できないの?
>

GetCommandLine関数



717 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 10:58:03.30 ]
>>711
おしえれ ksg

718 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 11:47:45.96 ]
>>716
ありがとうございます。
msdn.microsoft.com/ja-jp/library/cc429108.aspx
ってこれ外部ライブラリ・コールか何かせんとあかんのやね、きっと。

719 名前:デフォルトの名無しさん [2012/03/17(土) 14:02:53.16 ]

Private Declare Function GetCommandLine Lib \\\"kernel32\\\" Alias \\\"GetCommandLineA\\\" () As Long
Private Declare Function lstrcpy Lib \\\"kernel32\\\" Alias \\\"lstrcpyA\\\" (ByVal lpString1 As String, ByVal lpString2 As Any) As Long

Sub Workbook_Open

Dim sBuf As String

strBuf = Space$(255)
Call lstrcpy(strBuf, GetCommandLine())

Debug.Print strBuf

end Sub


720 名前:デフォルトの名無しさん [2012/03/17(土) 14:05:29.66 ]
ごめん、p2で書いたら変な「\」がついちゃった

Private Declare Function GetCommandLine Lib "kernel32 " Alias "GetCommandLineA" () As Long
Private Declare Function lstrcpy Lib "kernel32 " Alias "lstrcpyA " (ByVal lpString1 As String, ByVal lpString2 As Any) As Long

こうね

721 名前:694 mailto:sage [2012/03/17(土) 22:07:32.08 ]
グーグル先生ってすごい!
クリックで値が取れた!

722 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 15:07:11.33 ]
>>669
派遣ですか?
正社員がいいのですが

723 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 15:17:58.27 ]
腐るからやめろよ

724 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 16:42:41.53 ]
こんにつあ質問ですお

A1-E1に1,2,3,4,5値が振ってあって
A2-E2,A3-E3,....,A100-E100まで数値がランダムに入っています。
このとき各行を、それぞれ列の昇順で並べかえたい。つまりA2-E2,A3-E3,....,A100-E100とそれぞれ昇順に並べかえたいのですが、
そのとき1-5の値の対応を残したいのです。どうすればよいでしょうか!!

725 名前:669 mailto:sage [2012/03/18(日) 17:09:54.42 ]
>>722
私は正社員ですがパートさんも居ます。
ただ、求人かけてないので・・・

あと、あまり詳しく書くと特定されそうなので
もうこれ以上書かないことにします。
とりあえず大阪府も大阪市も一切関係ない民間企業です。


726 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 18:18:26.86 ]
>>724
説明が下手すぎて質問が意味不明



727 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 18:31:41.37 ]
次の国会で青少年ネット規制法通すことにするわ
子どもたちを守るためには必要だよな

728 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 19:12:42.15 ]
>>724
おりあえず、A2:E2 をソートしたいらしい。

729 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 19:38:33.54 ]
>>724 とりあえずこれで皆の様子見てみて。
Sub Macro1()
' Version : Excel 2002 VB6.0

Range("A2:E2").Select
Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlLeftToRight, SortMethod _
:=xlPinYin, DataOption1:=xlSortNormal
End Sub

730 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 20:05:11.79 ]
たぶん要点は
>そのとき1-5の値の対応を残したい
だと思うんだが
具体的に何をどうしたいのかがさっぱり解らんな

731 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 20:42:22.24 ]
え…わたしの説明…ヘタすぎ!?

732 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 21:06:10.55 ]
んーとですねー
数値が入ってるセルを行毎に昇順で並び変えたときの、順番を取得しまして、
次にその順番を基準に、最初にセルがあった列番号を並べ変えてですね、
さらにそれにセルに入ってた数値を対応させたいのですけど、具体的にすればいいのかはわからなくて行を2行にするくらいしか思いつかないのですのでなにかよい方方法を教えてみて下さいマシマロ

733 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 21:21:45.79 ]
何言ってんだかさっぱりワカンネ

734 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 21:28:55.25 ]
ちゃんと説明しようとしない人間の質問に答える必要なし

735 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 21:40:34.77 ]
下記の様に作成したテキストボックスのShape objectを変数shSelに代入し
て、そこに文字列や書式設定をやりたい。

Sub mkTextBTest02()
  Dim shSel As Shape

    Set shSel = ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, _
      48#, 20 + 16 * lC, 10#, 16#)

    shSel.Characters.Text = lC '←$文字列を書く
    With shSel.Font '←$フォントの設定
      .Name = "MS ゴシック"
      .Size = 9
    End With
    shSel.ShapeRange.Line.ForeColor.SchemeColor = 1 '←$フォントの設定
End Sub

←$印の所でエラーが起きる。
.Characters .Font .ShapeRange は、class Shapeのpropertyでないから。
"ActiveSheet.Shapes.AddTextbox(〜).Select"として変数shSelの代わりに、
Selectionと書くとエラーが起きない。
class Shapeのproperty Characters,Font,ShapeRangeを指定するにはどうす
ればいいでしょうか。


736 名前:729 mailto:sage [2012/03/18(日) 21:59:27.07 ]
こんな感じ? F-J は順列番号
BEFORE:
 A1   B1   C1   D1   E1  
+-------+-------+-------+-------+-------
  1    2    3    4    5  
 21   20   19   18   17  
 31   32   33   34   35  
 45   44   43   42   41  
 56   52   53   54   55  
 61   65   63   62   60  
+-------+-------+-------+-------+-------
AFTER:
 A1   B1   C1   D1   E1   F1   G1   H1   I1   J1 
+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------
  1    2    3    4    5    1    2    3    4    5  
 17   18   19   20   21    5    4    3    2    1  
 31   32   33   34   35    1    2    3    4    5  
 41   42   43   44   45    5    4    3    2    1  
 52   53   54   55   56    5    1    2    3    4  
 60   61   62   63   65    2    5    4    3    1  
+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------



737 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 22:05:40.66 ]
説明が分からないから答えようがないのかそれとも説明は分かるけれども態度が気に食わないから答えないのかもし仮に後者なら貴方こそレスする必要は無いし説明が分からないならば分からない箇所を指摘してくれれば返答できるのだが!!!

738 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 22:07:03.60 ]
736まさにそれですそれを2行にするか1行に続けて書くか以外になにか案はありますかないのならば1行に続けて書いた方がスマートなんでそうしますが

739 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 22:14:21.32 ]
元データの末尾に列番号を加える
元のデータ
12 54 . 8 23 36
これを
121.542 83 234 365
にしてから並べ替えれば、下1桁をチェックすれば元の位置がわかる

740 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 22:20:57.88 ]
>>737
ちゃんと例を上げて処理をひとつずつ説明しろ
変な言葉遣い止めろ

741 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 22:36:53.87 ]
なるほどおおおお0.0001とかにすれば誤差も出ないしいい感じですなあ

742 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 23:30:16.99 ]
>>741
どんだけ低脳なんだよ
いいわけないだろ
ただ複数の値を保持したいだけなんじゃないのかよ
データ用と表示用で表を分けるとか
Idプロパティ使うとかすればいいだろ
Idなら、
A.Idを降るプロシージャ(1〜5)
B.それぞれの行を並べ替えるプロシージャ
C.IdとValueを入れ替えるプロシージャ
を作って、ABで並べ替えた後、
CBCで元の並びに戻る


743 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 23:36:09.02 ]
あっはあidプロパティねthx!

744 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 23:40:58.34 ]
真性か・・・

745 名前:デフォルトの名無しさん mailto:sage [2012/03/19(月) 04:38:22.65 ]
'
↑これを
エクセルのシート上で
="'"&A1
と書くとセルA1の文字列の前に ' が
連結されるのですが

VBAで

dot = "'"
Cells(A, 5) = dot & Cells(A, 1)

と書いてもA5セルの文字列(A1の中身)の前に ' が
表示されずA5セルをクリックすると
上部のセルの中身が見れるバーには ' が文字列の前に
表示されています。
A5セルを他のセルにコピーしても
文字列だけコピーされて ' はコピーされません。

VBAを使って、文字列の前に ' を連結させたいのですが
良い方法ありませんか?

746 名前:デフォルトの名無しさん mailto:sage [2012/03/19(月) 05:08:10.31 ]
>>745
まず自分で調べろ
俺も知らなかったけど
ググったら載ってたぞ

いい加減にしろ!!



747 名前:デフォルトの名無しさん mailto:sage [2012/03/19(月) 08:02:09.18 ]
>>746
VBAのプログラムがおかしいかと
何時間も考えたけど
ぐぐったら1分で解決しました
ありがとう

748 名前:デフォルトの名無しさん mailto:sage [2012/03/19(月) 22:01:31.40 ]
>>735
以下の様に、変更するとテキストボックスをかけるようになった。

Sub mkTextBTest02()
  Dim shSel As Shape

  Set shSel = ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, _
    48#, 20 + 16 * lC, 10#, 16#)

  shSel.TextFrame.Characters.Text = lC '←$文字列を書く
  With shSel.TextFrame.Characters.Font '←$フォントの設定
    .Name = "MS ゴシック"
    .Size = 9
  End With
  shSel.Line.ForeColor.SchemeColor = 8 '←$フォントの設定
End Sub

VB Editorのヘルプを調べてわかった。
各くオブジェクトのpropertyと、propertyのobjectを定義するclassの区別
がついていなかった。


749 名前:デフォルトの名無しさん mailto:sage [2012/03/19(月) 22:12:28.38 ]
C3に 11582.43、C4に11722.98という数字が入っています
ワークシートで= =C4-C3とすれば、140.55という数字が入ります
んで、VBAで同じように引き算で
Cells(4, 5) = Cells(4, 3) - Cells(3, 3)
とすると見かけ上は同じく140.55という数字が入っていますが、
上の関数入力するとこを見ると140.54999999
という数字になっています

なぜ?

この場合小数点以下三桁のとこで四捨五入しないとだめ?

750 名前:デフォルトの名無しさん mailto:sage [2012/03/19(月) 22:56:52.80 ]
>>745
"'"は、セルが文字列型であることを示す接頭辞だから消えてしまう。
Cells(5, 1) = "''" & Cells(1, 1)
と書くか。
しかし、Cells(6, 1) = Cells(5, 1) 頭に"'"あるCells(5, 1)をCells(6, 1)
にコピーすると、Cells(6,1)では頭の"'"は消えてしまう。

しかし、Cells(A,5)と言う書き方、間違っているのでは。


751 名前:デフォルトの名無しさん mailto:sage [2012/03/20(火) 01:00:47.78 ]
>>749
コンピュータで小数点以下を扱う場合は誤差がでることを考慮に入れる必要があるんだよ
ちなみにその計算式のセルを小数点以下20桁とかの表示にしてみ

>>750
>しかし、Cells(A,5)と言う書き方、間違っているのでは。
文法的にはAという変数でRowIndexを指定してる。間違ってはいない
まあ、意図したものと違うだろうって意味では間違ってるがw

752 名前:デフォルトの名無しさん mailto:sage [2012/03/20(火) 05:22:57.78 ]
>>751
とりあえず、数字を100倍して引き算をし、その後また100で割るようにしておきました。

753 名前:デフォルトの名無しさん mailto:sage [2012/03/20(火) 10:39:54.04 ]
sheetとsheetの結合ってどうやるの

754 名前:デフォルトの名無しさん mailto:sage [2012/03/20(火) 16:43:04.59 ]
しーとと
しーとの
けつごう

755 名前:デフォルトの名無しさん mailto:sage [2012/03/20(火) 16:52:15.11 ]
あのぉ…大量のデータをコピーしようとすると…リソース不足とでるんですが…

756 名前:デフォルトの名無しさん mailto:sage [2012/03/20(火) 17:38:02.76 ]
型が一致しません、というエラーをスルーして処理を続けさせるにはどうすればよいですか?



757 名前:デフォルトの名無しさん mailto:sage [2012/03/20(火) 18:03:41.58 ]
>>756
On Error Resume Next

758 名前:デフォルトの名無しさん [2012/03/20(火) 19:43:41.75 ]
BookB の全部をコピーして、BookA に貼り付けて BookB を保存しないで、コピーしたデータも
他に使わないで、ただ閉じたいんですが、どう書けばいいでしょうか?

マクロの記録だと、ブックを閉じてしまうため、記録が残りません。

759 名前:デフォルトの名無しさん mailto:sage [2012/03/20(火) 19:53:02.06 ]
全部をコピーって具体的には?
ぶっちゃけファイルコピーで済むようにも見える。

760 名前:デフォルトの名無しさん mailto:sage [2012/03/20(火) 20:35:55.01 ]
Workbooks("BookB").Close False


761 名前:デフォルトの名無しさん mailto:sage [2012/03/20(火) 21:34:10.11 ]
BBとか多い列数はどうやって数えますか?

762 名前:デフォルトの名無しさん [2012/03/20(火) 21:50:35.25 ]
column関数

763 名前:デフォルトの名無しさん mailto:sage [2012/03/21(水) 00:03:45.84 ]
if small (範囲,1)とするとエラーが出ます
どう書けばよいですか

764 名前:デフォルトの名無しさん mailto:sage [2012/03/21(水) 00:06:51.11 ]
Application.Small

765 名前:デフォルトの名無しさん mailto:sage [2012/03/21(水) 00:40:15.33 ]
出来ねええ

766 名前:デフォルトの名無しさん mailto:sage [2012/03/21(水) 00:41:18.41 ]
>>761
かぞえなくても Cells(5, "BB") みたいに書けるからあんまり困らない



767 名前:デフォルトの名無しさん mailto:sage [2012/03/21(水) 00:42:22.85 ]
application.smallが上手くいかない件

768 名前:デフォルトの名無しさん mailto:sage [2012/03/21(水) 00:44:11.28 ]
多分それデータが悪い

769 名前:デフォルトの名無しさん mailto:sage [2012/03/21(水) 00:47:07.63 ]
オブジェクトが必要ですとでてくる

770 名前:デフォルトの名無しさん mailto:sage [2012/03/21(水) 00:49:05.83 ]
範囲って変数の型がRangeじゃないんじゃない?
これで動いたぞ

Dim 範囲 As Range
Set 範囲 = Range("A1")
Debug.Print Application.Small(範囲, 1)

771 名前:デフォルトの名無しさん mailto:sage [2012/03/21(水) 00:57:41.83 ]
set c = worksheets("a").range(cells(1,1),cells(1,2))
これどこちがう

772 名前:デフォルトの名無しさん mailto:sage [2012/03/21(水) 01:01:05.19 ]
>>771
エスパー能力を最大限に発揮すると思いつくのはこんなとこ

・シート名が"a"ではない
・セルの範囲が実は間違っている
・変数名がcではない

773 名前:デフォルトの名無しさん mailto:sage [2012/03/21(水) 01:07:26.09 ]
今日のエスパー養成所はここかっ!


774 名前:デフォルトの名無しさん mailto:sage [2012/03/21(水) 01:07:38.93 ]
アプリケーションの定義またはオブジェクトの定義のエラーですがでます

775 名前:デフォルトの名無しさん mailto:sage [2012/03/21(水) 01:09:11.73 ]
>>771
Set c = Worksheets("a").Range(Worksheets("a").Cells(1, 1), Worksheets("a").Cells(1, 2))
又は
Set ws = Worksheets("a")
Set c = ws.Range(ws.Cells(1, 1), ws.Cells(1, 2))

776 名前:デフォルトの名無しさん mailto:sage [2012/03/21(水) 01:12:44.97 ]
できますたwwwwありがとお



777 名前:デフォルトの名無しさん mailto:sage [2012/03/21(水) 01:52:04.45 ]
右クリックの動作を処理に応じて変えることはできませんかね?
例えば最初は通常の動作(ショートカットメニューを表示)、あるコマンドボタンを押してから右クリックすると条件付き書式設定のダイアログボックスを表示、また別のコマンドボタンを押すと通常のショートカットメニューに戻す

778 名前:デフォルトの名無しさん mailto:sage [2012/03/21(水) 05:31:19.87 ]
できます






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<296KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef