トップページ⇒tech
1001コメント349KB

Excel VBAについて

レス数が1000を超えています。これ以上書き込みはできません。
0001りゅうNGNG
EXCELの97、2000、XPの相違点て何がある?
こんどVBAでプログラムくむことになったんだが・・・
注意しないといけないことあったら教えてくれ



0002りゅうNGNG
特に関数とかフォームとかについてお願いします。
0003デフォルトの名無しさんNGNG
困ってから聞きにこい。
でなきゃ金払って講習会受けて来い。
0004デフォルトの名無しさんNGNG
>>1
師ね
0005デフォルトの名無しさんNGNG
    ∧_∧            ((
   ( ´Д`)            ) )
  /    \          ノ
  | |     | \        ((  ((
  | | /⌒|⌒|ヽ二二つ    )    ) 丿パチパチ
  ヽ二二Ο./      \ (( (   ノノ
  (_| |_| |_       \ ∴∵ ← >>1
    .(__)__)       //》||ヾミ\
0006デフォルトの名無しさんNGNG
Officeのバージョン混在環境は死のかほり。
0007りゅうNGNG
相互リンク
http://pc.2ch.net/test/read.cgi/prog/1023755531/
0008デフォルトの名無しさんNGNG
>>1よ聞いてくれ
俺には母親と1つ違いの妹がいる。
残念ながら俺の父親は俺が小さいときに愛人を作り蒸発した。
俺は父親の顔は覚えていない。
しかし母親の小さい背中に支えられ、貧乏ながらも幸せな生活を送っていた。
しかし俺が小学校6年の時の誕生日の日に母親は暴走したトラックに惹かれて死んだ。
そして俺と妹は親戚の家に預けられた。
はじめは不安だったが、俺には厳しかった義理父だが、
妹にはやさしく接してくれ俺は本当に安心できた。
しかしそこの義理父が妹の誕生日の日に、俺の前で妹を犯した。
妹がまだ女になる前にだ。
俺は本当に怒りを覚えたが、義理父に逆らうと生活が出来ないため、
泣きじゃくる妹をただ見つめることしか出来なかった。
そして俺は中学生なのに、仕事もしない義理父の変わりに仕事に行かされろくに勉強もできなかった。
そして15歳の時に家を追い出された、このときは残された妹が本当に心配だった。
しかし、妹も1年後に家を逃げてきて、苦しい思いをしていたようだが
2人で笑顔で生活することが出来るようになった。

少年期は非常に苦労したが、それが今心の糧となって貧乏ながら一生懸命生きている。











以上、この話は嘘だ。
0009名無しさん@EmacsNGNG
適当なスレがどこか良く分からなかったのですが、とりあえずここで。

(A列の値) * (B列の値)を C列に入れる場合、

for i=0 to 100
Range("C" & i).value = Range("A" & i).value * Range("B" & i).value
next i

ってやると、著しく遅いんですが、何か良い方法は無いでしょうか?
たぶん文字列の結合が余計な処理なんじゃないかとは思うのですが・・・
0010デフォルトの名無しさんNGNG
こんなんどう?
ちょっとは早くなりそうな気はするけど。

For i = 1 To 101
Cells(i, 3).Value = Cells(i, 1).Value * Cells(i, 2).Value
Next i

実際>>9のと実際に比べてみたけど、>>9もそんなに遅くはなかったってのは付け加えときま。
0011デフォルトの名無しさんNGNG
>>9
マクロの記録って知ってる?

Sub Macro1()
'
' Macro1 Macro
' マクロ記録日 : 2002/7/2 ユーザー名 : ********
'

'
ActiveCell.FormulaR1C1 = "=RC[-2]*RC[-1]"
Range("C1").Select
Selection.AutoFill Destination:=Range("C1:C100"), Type:=xlFillDefault
Range("C1:C100").Select
End Sub
0012デフォルトの名無しさんNGNG
>>9
スマソ。式じゃなくて計算結果を代入しなければならないのね。
でも式の採用も検討しちくり。
0013デフォルトの名無しさんNGNG
excelVBAて役に立つの?
まえにアホ元SE(COBOLER)が自慢してたんだけど。
60歳こえている頭がいかれた爺だからしかたないんだけど。

0014デフォルトの名無しさんNGNG
>>13
仕事でバリバリ使っている。俺の仕事は工学系で、結果をすぐにグラフ
にしてカット&トライしながらやっていくのだが、EXCEL VBAは超便利。
速度は遅いけどね。
00159NGNG
>9,10
どーもです。10さんのアイデアをいただいて、早い処理をマクロ記録して、
それを改造してコードをくんだらだいぶ速くなりました。
ありがとうございました。
0016VBA暦7年NGNG
オブジェクトの参照は著しく遅くなるので一度変数に読み込むべし。
プログラムは基本的に
・読込
・計算
・出力
の3部構成にすべし。これ基本。

Application.ScreenUpdating=False
Dim dblX as Double, dblY as Double, dblZ as Double
'読込
dblX=Cells(1,1).Value
dblY=Cells(2,1).Value
'計算
dblZ=dblX*dblY
'出力
Cells(3,1).Value=dblZ

大量データ処理だとぜんぜん速度違うし、プログラムもスキーリ。
0017デフォルトの名無しさんNGNG
本屋で売ってるExcel VBAの本なんか、ほとんどがクズばっかりだ。
半人前のくせして本書くな。
0018VBA暦7年NGNG
↑そだね。本当に役に立ったのは大村あつしの1冊しかなかった。
0019デフォルトの名無しさんNGNG
>>18
大村あつしでもまだ不足だ。
Microsoft公式の上級者向けでないと。
0020デフォルトの名無しさんNGNG
いいんだよ、どうせ素人向けなんだから。
0021デフォルトの名無しさんNGNG
クラスをまともに扱った本って見たことないな。
大体がチャートオブジェクトでイベント拾いたいとかで
呪文みたいにサンプルリスト出してあるだけ。
0022VBA暦7年NGNG
>>19
読んだことなかったです。今度読んでみよっと。
0023デフォルトの名無しさんNGNG
漏れはexcelVBAでwin32api呼び出して、グラフィック表示させるプログラムを作らされました。
もうむちゃくちゃ。
0024VBA暦7年NGNG
速度向上のポイントとしては
・Application.ScreenUpdating
・Application.Calculation
・Cellを極力参照しない
くらいかな。
0025デフォルトの名無しさんNGNG
遅くてもええやん。
どうせ金になるスキルじゃないんだから。
0026デフォルトの名無しさんNGNG
>>25の言っている意味がわからない
0027デフォルトの名無しさんNGNG
Excelの仕事って、確かに金額だけ見てると安いけど、うまくやると利益率高いの多いね.
ぽっと出の案件ばっかで継続性が無いのがアレだけど。
0028デフォルトの名無しさんNGNG
セルへの大量データの貼り付けは
クリップボードを使うと速いよ

0029デフォルトの名無しさんNGNG
昔はクリップボードって32kの制限があったのだが・・・
今はもう無いのかな。

あぁ、DDEの方が速いよ・・・ふぅ。
0030VBA暦7年NGNG
>>1
97と2000でドロップダウンコンボ(だったっけ?)コントロールの仕様がビミョーに異なっていたと思ふ。
ユーザーフォームの動作確認は厳重にしる。
あと、WorkSheetをMoveするとオブジェクト変数がオブジェクトを見失うというバグらしきものが2000にはあった。sp2あたりで治ったかな。
0031VBA暦7年NGNG
>>27
たしかに継続性がない。仕様書がない。予算がない。
Excelの仕事ってワークグループ向けで、エンタープライズ向けではないからお金にはならない。
ニッチなお仕事ね。
0032デフォルトの名無しさんNGNG
誰かExcel2002のスタッフロールの出し方を知りませんか?
003332NGNG
みんなVBAとか語ってはいるものの、EXCEL20002のスタッフロールを出す方法
知ってるような人はいないのかな?
(EXCEL2000はすでに知ってるから・・・2002の方法を教えて下さい)
0034デフォルト名無しさんNGNG
保険会社で新商品を開発したりする場合に滅茶苦茶使うよ、EXCELVBA。
アクチュアリーの必需品。
0035 NGNG
みんなVBAとか語ってはいるものの、EXCEL20002のスタッフロールを出す方法
知ってるような人はいないのかな?
(EXCEL2000はすでに知ってるから・・・2002の方法を教えて下さい)
0036ななしNGNG
>>29
Accessのデータシートビューの数1000〜1万件のオーダーのレコードがメモリ不足にも
ならずにコピペできるのだから、32Kが上限であるはずがない。
0037デフォルトの名無しさんNGNG
すんません。excel初心者です。
excelのVBAからexe形式の他の実行ファイルを
呼び出す方法を教えてください。
0038デフォルトの名無しさんNGNG
>37
Shell関数をちぇけらっ
0039デフォルトの名無しさんNGNG
ありがとうです。
できれば、非同期でなく同期で、
アプリからの戻り値を取得したいのです。
0040デフォルトの名無しさんNGNG
>>39
API使ってもできるけど、VBAからwshを呼び出すという手もある

Set WShell = CreateObject("WScript.Shell")
rc = WShell.Run("notepad", , True) '第3引数がtrueなら同期
0041デフォルトの名無しさんNGNG
41 :41 :Over 40 Thread
このスレッドは40を超えました。
もう書けないけど、新しいスレッドは立てないでくださいです。。。
0042デフォルトの名無しさんNGNG
エクセルVBAでローカルIPアドレス取得する方法ってあります?
ちょっと困ってます。誰か教えて。
0043デフォルトの名無しさんNGNG
age
0044デフォルトの名無しさん NGNG
>>41

Private Declare Sub vbMemMove1 Lib "kernel32" Alias "RtlMoveMemory" (dst As Any, ByVal src As Long, ByVal num As Long)
Private Declare Sub vbMemMove2 Lib "kernel32" Alias "RtlMoveMemory" (dst As Long, ByVal src As Long, ByVal num As Long)

Private Declare Function gethostname Lib "wsock32.dll" (ByVal Name As String, ByVal namelen As Long) As Long
Private Declare Function gethostbyname Lib "wsock32.dll" (ByVal Name As String) As Long
Private Declare Function WSAStartup Lib "wsock32.dll" (ByVal wVersionRequested As Integer, lpWSAData As Any) As Long
Private Declare Function WSACleanup Lib "wsock32.dll" () As Long
Private Declare Function WSAGetLastError Lib "wsock32.dll" () As Integer

' IPアドレスを取得
Public Function GetIpAddress() As String
Dim wsa As WSADATA
Dim sName As String * 65
Dim he As hostent
Dim p As Long
Dim b(3) As Byte

If WSAStartup(&H101, wsa) <> 0 Then Exit Function

If gethostname(sName, 64) = 0 Then
p = gethostbyname(sName)
If p <> 0 Then
vbMemMove1 he, p, 16
vbMemMove2 p, he.h_addr_list, 4
vbMemMove1 b(0), p, 4
GetIpAddress = b(0) & "." & b(1) & "." & b(2) & "." & b(3)
End If
End If

WSACleanup
End Function
0045デフォルトの名無しさんNGNG
EXCELVBAで組むと簡単なマスタデータとかはワークシートに持てるし
EXCEL入ってればどこでも開発できるからツールとか、VBアプリのプロト
とか作るのに重宝する。
ただし、エンドユーザにリリースしちゃうのは、勝手にEXCELバージョン
アップされちゃったりするのでちょっと慎重になる。

>42

shell関数でipconfig.exe /batch temp.txtで出力するか
40みたいにWSH使って標準出力から拾って、その後IPアドレス
だけ切り出すがよろし。
0046bigpapaNGNG

■ 全国の愛すべき諸君へ 沖縄より愛を込めてbigpapaより

★ 2ちゃんねるの管理人に賠償と書き込みの削除を命令 東京地裁 
------------------------------------------------------------ 
 インターネット上の人気サイト「2ちゃんねる」の掲示板をめぐり、
東京都内の動物病院が「書き込みで中傷された」として東京地裁は26日、
400万円の支払いと書き込みの削除を命じた。

管理人は「不当な判決だ。賠償額についても不満があり、控訴する予定」
と話している。[毎日新聞6月26日
 

■ 東京地裁の判決の詳しい結果は下記のURLをご覧ください。
■ http://www1.ryucom.ne.jp/papa/newpage2chsaiban.htm

■ アスキーアート(AA)の定義JISアートの定義は下記URLへ
■ http://www1.ryucom.ne.jp/papa/asciiart.htm
0047デフォルトの名無しさんNGNG
Excel VBA 厨房です。

エラー処理にひっかかったら Excel を落とすってことで、Application.Quit
を使ってるんですけど、Application.Quit 以下の文が実行されてしまいます。

Application.Quit って C で言う exit() みたいな使い方できないんですか?
0048デフォルトの名無しさんNGNG
Application.Quit 以下の文が実行されてしまいます。
がよくわからんが、
ビジネスsoft板逝ったほうがいいと思うぞ。
0049デフォルトの名無しさんNGNG
>>48
ビジネスソフト板っすか。さんくすこ。
0050デフォルトの名無しさんNGNG
次のバージョンはC#ですか?
0051デフォルトの名無しさんNGNG
エクセルからXML吐き出すのに、これはいいってのあるかい?
0052デフォルトの名無しさんNGNG
フツーに出してるのXMLもどきじゃなかったっけ?
0053デフォルトの名無しさんNGNG
EXCEL20002のスタッフロールを出す方法教えてください
0054デフォルトの名無しさんNGNG
>>9
もう見てないとは思うが。
16よ、知ってたらちゃんと教えろよ。

Sub Sample1()
Dim a
Dim b() As Double
Dim i As Long
With Range("A1:A100")
a = .Resize(, 2).Value
ReDim b(1 To UBound(a), 0)
For i = 1 To UBound(a)
b(i, 0) = a(i, 1) * a(i, 2)
Next
.Offset(, 2).Value = b
End With
End Sub

Sub Sample2()
With Range("A1:A100")
.Copy Range("c1")
.Offset(, 1).Copy
.Offset(, 2).PasteSpecial Operation:=xlMultiply
End With
Application.CutCopyMode = False
End Sub

005554NGNG
スマソ、上はインデントが入ってない。
005654NGNG
笑われる前に訂正。
Sub Sample2()
With Range("A1:A100")
.Copy .Offset(,2)
.Offset(, 1).Copy
.Offset(, 2).PasteSpecial Operation:=xlMultiply
End With
Application.CutCopyMode = False
End Sub

0057デフォルトの名無しさんNGNG
>>54
(^Д^)ギャハハ!!
0058初心者NGNG
アプリケーションからのメッセージを無視してそのまま動作させる方法を教えてください。
例えばエクセルで、

ActiveWindow.SelectedSheets.Delete

とやってシートを削除するときに、
「もとに戻せないよ」って警告がでますよね?

これを無視したいのですが。
0059デフォルトの名無しさんNGNG
>>58
Application.DisplayAlerts = False
006058NGNG
>>59 やってみます。どもでした。
0061デフォルトの名無しさんNGNG
excelのVBAで矢印(shape)を描画する時の座標系はポイントですけど、
この座標系ってセルの罫線の太さによって微妙にセルの位置とずれますよね。
cellとshapeの位置をきっちり対応させる方法ってあるのでしょうか?

0062デフォルトの名無しさんNGNG
61>>
rangeで選んでheightでポイントをゲット
(すいません自己レスでした)
0063デフォルトの名無しさんNGNG
アクセルのVBAでどれくらいのプログラムが組めますか?
0064デフォルトの名無しさんNGNG
>63
メモリの許す限り
0065蛇足NGNG
>58
その後Trueにしときや。いちおー。

Application.DisplayAlerts = False
ActiveWindow.SelectedSheets.Delete
Application.DisplayAlerts = True
0066デフォルトの名無しさんNGNG
>>63
アクセルって何?
0067デフォルトの名無しさんNGNG
セルをクリックするとValueに○が入る仕掛けを実装したいのですが、
セルを左シングルクリックしたときだけイベントを起こすには、
どうしたらいいのでしょうか? ワークシート上での右クリックや
ダブルクリックのイベントはすぐ見つかりましたが、ただの
クリックとキーボードイベントだけが見当たらなくて、非常に
困っています。
0068デフォルトの名無しさんNGNG
オセロか囲碁でもつくるのかい?
006967NGNG
>>68
とある地学系観測データシート作成システムの構築です。お客さん
からは「左クリックで○を入れ、右クリックで消去」さらに「範囲
選択後、左クリックで選択範囲を全て○に、右クリックで全消去」
と申し渡されていますが、上記問題がボトルネックになって、
ちっとも作業が進まないんです・・・。
0070デフォルトの名無しさんNGNG
>>69
SelectionChangeとかじゃだめ?
0071 NGNG
>>66
63が開発した有名なソフトだ。静かに見届けてやれ......。
0072デフォルトの名無しさんNGNG
ひそかにアクセルつーのは2ch用語かと思っていた俺・・・。
007367NGNG
>>70
SelectionChangeをそのまま使うと、キーボードでカーソル移動
しただけで○が書き込まれてしまいます。というか、誤植の原因に
なるから何とかしてくれとお客さんにお叱りを受けました。
0074 NGNG
CTRL押しながらクリックしたら...とか譲歩案にもってけよ!
0075デフォルトの名無しさん NGNG
つーか、これくらい自分で出来ない客はクソだな
0076デフォルトの名無しさんNGNG
>>73
そしたら、WinAPIロードして、マウスクリックイベント捕まえたら?
0077デフォルトの名無しさんNGNG
ここにも記入させていただきます。

CommandBarに以下のようにして、
CommandBarComboBoxを追加しました。

Dim CB As CommandBar
Dim CBCtrl As CommandBarControl

Set CB = Application.CommandBars("Worksheet Menu Bar")
Set CBCtrl
= CB.Controls("挿入(I)").Controls("一括挿入").Controls.Add(Type:=msoCo
ntrolEdit)

With CBCtrl
.Caption = "挿入縦サイズの設定"
End With

このとき、Type:=msoControlEditですので、
記入欄に文字をかきこむことができます。

その文字をプログラムにうけわたすには?
また、記入欄に初期値をかきこんでおくには?
また、記入欄の文字を変更した場合、初期値をそれに変更するには?

どうかご教授ください。
0078デフォルトの名無しさんNGNG
>>78=原始人
0079デフォルトの名無しさんNGNG
ちょっといい話し。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
あちこちから悲鳴が聞こえる泣き叫ぶ子供。瓦礫と化した家に押しつぶされる日本人。
「助けて…」という声が絶え間なく聞こえている。しかし被災した神戸の住民は、放心
したように黙って座り込んでいるだけだ。あまりのショックに下敷きになっている人を
助けることさえ忘れているのだ。
「今助けるけん。まっとんしゃい!」
こう叫んだのは共に住民として神戸に住む在日韓国人達だった。自分も血を流し怪我を
しているにも関わらず救助活動を続けた。
「ぜったい助けるけん。がんばっとー!」こうして懸命な救助活動の末助け出された人
達は1万人以上にものぼる。助けられた中学生の女の子は「在日韓国人の人がいなかっ
たら間違いなく死んでいた」と涙を流した。村山首相を始め救助活動の遅れが多くの助
けられる人たちの命を奪った。「助けるのは当たり前けん! 私ら同じ住民やもん!」
オモニ達は目に涙を浮かべていた。
0080デフォルトの名無しさんNGNG
>>79
いい話しだなぁ〜
0081デフォルトの名無しさんNGNG
戦時中にレイプ事件など女子供を痛めつける事件が起きると、警察が動き
出す前に先立って調べに動いたのは在日韓国人だったと言う。

それも大半がヤクザと言われる人達であって、彼らは確かに日常的には
非難の目で見られているかもしれないが、しかしまた一番勇気のある人達
でもあったのである。
0082デフォルトの名無しさんNGNG
???
いきなりここはニュー速か極東にワープしたのれすか?
0083デフォルトの名無しさん NGNG
>>77
.Textじゃだめ?
0084デフォルトの名無しさんNGNG
フォームにRefEditコントロールを使うと、動作がおかしくなります。
具体的には、セルの参照後、元のフォームに戻っても、操作を受け
付けなくなります。RefEditが縮小されないようです。

MSのサポート情報(Excel97に似た現象があるらしいです。)やGoogle
で検索しても情報がなくて・・・

環境はWin2000SP3 Excel2002SP2です。ご指導お願いします。
0085デフォルトの名無しさんNGNG
低レベルで申し訳ないんですが質問させてください。
ある列を基準に集計したいのですが可能でしょうか?
たとえば
 商品  金額    商品  金額  
 A    100    A    300
 A    200  ⇒ B    700
 B    300
 B    400
のように。

よろしくお願いします。
0086デフォルトの名無しさんNGNG
>>85
簡単
0087デフォルトの名無しさんNGNG
>>85
プログラムレスに行うにはデータ→集計。
0088デフォルトの名無しさんNGNG
>>87
ム板的には、あえてVBAプロシージャを組んでみせるとか。駄目?
0089デフォルトの名無しさんNGNG
Range("XX:XX").Select
Selection.Subtotal GroupBy:=1, Function:=xlSum, TotalList:=Array(2), _
Replace:=True, PageBreaks:=False, SummaryBelowData:=True

とかね。それともCellsプロパティを使って配列のように計算するか。
0090デフォルトの名無しさんNGNG
Excelマクロについての質問はこちらで良いのでしょうか?

グラフのデータのX軸を変更したいのですが
ActiveSeet.ChartObjects("グラフ 1").Activate
ActiveChart.SeriesCollection(1).XValues = "シート1!R2C1:R2C1"
でエラーが発生したりしなかったりします。
エラー内容は「SeriesクラスのXValuesプロパティを設定できません。」
です。
原因がわかりません。教えて下さい。
よろしくお願いします。
0091デフォルトの名無しさんNGNG
>>86〜>>89
皆さんありがとうございます。
データ→集計をプロシージャで書くと(手動でも)
行の左にエクスプローラのツリーのようなものが出てしまいますよね。
できれば出したくないんですが、そうなると「おとなしくAccess使え」
って事になるんですよね・・・。
でも参考になりました。ありがとうございます。
0092デフォルトの名無しさんNGNG
今、このような競馬の集計表を作っています。
http://eucaly.net/monazilla_uploader/1031668628_EX.png

この表の「複勝圏OK」、「複勝圏NO」に回数を返す関数を教えて
下さい。
「次走」「2走」「3走」の項目の下にある数字が着順です。
「○」昇級戦での順位、「▲」は降級戦での順位です。

*○や▲を取り除いてIF関数の後に<4と入れば済む事ですが
どうしてもそれもカウントしたいのです。
よろしくお願いします。

複勝圏=3着以内です
0093デフォルトの名無しさんNGNG
超初歩的な質問ですみません・・。
コマンドボタンを押すと、アクティブになっているセルの
場所(仮にA1)を返してテキストボックスに"A1"を表示するには
どうしたらいいでしょうか・・。

値の参照は簡単ですが、場所???壁にぶち当たり・・。

ご存知の方いらっしゃいましたらよろしくお願いします。
0094デフォルトの名無しさんNGNG
>>93
コントロールのボタンを貼り付け、TakeFocusOnClickプロパティをfalseに
設定する。

テキストボックスを一つ貼り付ける。

コードに次のようなものを記入する。(関数名、ワークシート名やテキスト
ボックス名は適宜変更の事)

Private Sub CommandButton1_Click()
Worksheets("Sheet1").TextBox1 = ActiveCell.Address
End Sub

デザインモードを抜け、ボタンを押すと、テキストボックスにアクティブセル
のアドレスが表示されるはずです。
009593NGNG
>94
教えていただいてありがとうございました。
おかげさまでサクッと作業が進みました。
本当に助かりましたー!
0096デフォルトの名無しさんNGNG
>>58 と似てるけどちょっと困ってます。
VC6.0++&MFC、#importを使って作成したEXEによってシートを削除すると
Excel95が入った環境では確認ダイアログを消せません。
95VBAヘルプのDisplayAlertsの項では「外部から使った場合は効果がありません」
って書いているのですが、どうにかしてこのダイアログを消す方法はないでしょうか?

最悪、シートを削除するだけの関数を保存したExcelファイルを別に用意しておき
実行環境がExcel95だった場合に限りApplication.Runでそれを呼び出して
削除しようかと考えてます。(この方法ではダイアログが出ないことを確認しました)
0097Delフサギコ ◆VzDeLphI NGNG
  ∧,,∧  よろしくお願いします。
 ミ,,゚Д゚彡

VBAで
Public Function AAA() as date
と関数を作ってDate型で
セル値を[=AAA]
として値を表示させているのですが
こうしたときに、時にはセルを空白にしたい時があります。

でも、AAAをnullでもどしたりすると
#Valueだかなんだかの値がセルに出てしまい
エラーっぽくなってしまっています。

これをどうにか消すようなことはできないでしょうか。

ヨロシコです。
0098デフォルトの名無しさんNGNG
>>97
=iif(AAA=Null,"",AAA)
とか。
0099Delフサギコ ◆VzDeLphI NGNG
  ∧,,∧  Excelのセル入力じゃなくて
 ミ,,゚Д゚彡
      VBAのFunction上で消したいのです。
      むりかしら。
0100デフォルトの名無しさんNGNG
Dateで返そうとするから無理なんじゃ?
ところでDelスレ以外での発言はそのコテハン止めてくれない?
0101デフォルトの名無しさんNGNG
>>100
まぁ、そういわんでもいいんじゃない?
叩かれる可能性の高いコテハンで頑張ってる
奴の唯一の(?)特権が、以前に何か教えてもらった
奴がお礼に教えてくれるかもしれないわけだし。

>>ギコ
試したわけじゃないけど、値がNULLだったら、
Nothingに変えてしまうとどうなるかな?
0102Delフサギコ ◆VzDeLphI NGNG

    l||l∧,,∧       / ̄ぢつは ̄ ̄ ̄ ̄ ̄ ̄ ̄
     .ミ,,   彡    <  ツっクを受けてたりしまつ....
     ∪ _ミ /  ̄ ̄ ̄/\___________
     (ミ,,,|\ ./ L e t s/
       '\/.======./
           ̄ ̄ ̄ 
0103デフォルトの名無しさんNGNG
適当なスレがなかったので、ここに質問させて頂きます。

印刷タイトルと同じように、
各ページの一番最後の行に金額の小計を出したいのですが、
何かいい方法があったら教えて頂けないでしょうか?
0104デフォルトの名無しさんNGNG
>>103
フッタに設定すれば?(毎ページごとに)
0105 NGNG
VBのコントロールにあるIndexみたいなのが Excelには 見当たらないんですけど、
複数のコントロールを順番に操作したりできないでしょうか?

0106103NGNG
>>104
フッターに設定してもいいんですが、
エクセルのフッターには、関数って使えませんよねぇ。。。

アクセスなら使えるんですが・・・。
0107デフォルトの名無しさんNGNG
EXCELで「支店名を入力したら該当する支店の電話番号」が出てくる
マクロを組んだんだが、うまくいかない。
支店が全部で100あったとして、データシートに100の支店を
記入していたらどうってことないんだけど、
管理上データシートを複数に分けたい。
四国のデータシート、関東のデータシート・・・といった具合に。
データシートを複数設けて、ユーザーが電話番号を入れるだけでそれらの
データシートをまたがって検索するようには出来ないのでしょうか?
どういう記述が必要なのかがわかりません。
仕様上無理??
0108デフォルトの名無しさんNGNG
>>107
1.隠しシートに全部のデータをコピーしてから処理
2.ブックが別じゃないなら全てのシートオブジェクトからデータを取得
 (VBA内で必要なシートだけにしてもいいけど)
3.ブックが別だったら面倒だからやめとけ
0109デフォルトの名無しさんNGNG
>>107
DATAsheet = SheetsALL
OUTsheet = "出力フォーム"

で出来ないのか?
試せる環境がないからわからんが。
これが出来ないというのは普通考えられないんだが、どうなんだろ
0110デフォルトの名無しさんNGNG
>>109
エクセルで全シートを参照しての検索マクロは過去にやったことあるけど無理っぽい。
あきらめて一つのデータシートにぶち込むしかないね
0111デフォルトの名無しさんNGNG
>>110
そうなの?
試してないけど、
シート1を検索して無かったら、
シート2を検索って出来ないのかな?
0112デフォルトの名無しさんNGNG
お前らVBAするのもいいが、それ以前にExcelそのものの機能を限界まで知り尽くす
ことも重要だぞ。無駄なVBAをしないためにも、本当にVBAを生かしきるためにもな。
オフィシャルマニュアルで学習するのがいいだろう。
0113デフォルトの名無しさんNGNG
>>107
For Each 〜 In 〜
Next
を御存知か?

============================
SerchSheetName = "なんでJAVAにはunsignedがないんだ!!"
For Each Sheet In Worksheets
If SerchSheetName = Sheet.Name Then
' 検索対象シートがあった場合文字列をぶちこむ
Sheet.Cells.Item(1, 1) = "重すぎるぞJAVAは!"
End If
Next
============================

で全シートに対して検索なり破壊工作なりできますが。
0114 NGNG
>>112
限界まで知らなくてもいいから
テキトーにプラグラムして ちゃんと動いて欲しいのが本音(w
0115デフォルトの名無しさんNGNG
>113
>"なんでJAVAにはunsignedがないんだ!!"

スレ違いだけど俺もそれで苦しんだ・・・
C言語のライブラリをJavaに移行するとき。
0116 NGNG
Sheet1.Range("A1").Select
With Selection.Interior
.ColorIndex = RGB(255,128,192)
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
これと
Sheet1.Range("A1").Select
With Selection.Interior
.ColorIndex = RGB(255,128,255)
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
これが 同じ色に表示されるんだけど、設定が変なんでしょうか?
0117 NGNG
.ColorIndex じゃなくて .Colorだな。
でも、色は同じみたいだが。
0118☆」NGNG
0119デフォルトの名無しさん NGNG
>>116


>>117の事もふまえて”RGB”からお勉強してください。
0120デフォルトの名無しさんNGNG
あるディレクトリ内の全CSVファイルを走査し、

45行目の23列目の値を新ファイルの1行目に
45行目の27列目の値を新ファイルの2行目に
45行目の?列目の値を新ファイルの3行目に
45行目の?列目の値を新ファイルの4行目に
  ・
  ・
  ・
という作業をして、値を抽出した
レポートファイルを作りたいです。

エクセルに頼るのではなく、
シェルとawkでやりたい。
でも、ディレクトリのグロビング等が絡むと
perlでやった方がいいのでしょーか。

0121 NGNG
>>119

RGBの何を勉強しろってんだ。
勉強する内容をココに書け!
そして、そのマクロを実行して、その結果、どうしてそうなるのか
述べてみろ。
0122デフォルトの名無しさんNGNG
>>120
エクセルもVBAも使わないなら、すれ違いでは?
0123120 NGNG
あ、すいません。120です。間違って書き込んでしまいました。
先ほど、某スレから120にレスが付いていたawkのスクリプトを見かけたのですが、
さっぱり判りませんでしたので、excellのVBAではどのようにするのかな、
と思って、質問しようと思って間違ってカキコしてしまったようです。

私は上と似たような情況で、ディレクトリにCSVファイルが沢山あり、
それをxlsファイルの一つのシートに書き込んでいきたいと思っています。
例えば、20行10列のcsvファイルがディレクトリに沢山あって、VBAでグロビング
してどんどん開いていき、例えば3行5列の値なんかをシートにどんどん書き出していくには
どのようにすればいいでしょうか?
0124初心者NGNG
ゲームのフリーセル32000通りを全部制覇するべく挑戦しており、
エクセルでフリーセルの番号の管理をしたいです。
解き終わった番号のセルを自動でチェックし、
新規ゲーム時に、未済の番号からランダムに出せるようにする。
解けない番号はパス(保留)して、また未解決の番号の中に戻す。
達成率をグラフで表せてもいいなと思ってます。

いわば「フリーセル32000本ノック」みたいなものを作りたいのです。
他のアプリが関わる場合でもVBAでマクロを組む事は可能でしょうか。
0125デフォルトの名無しさんNGNG
どうでもいいがVBAをマクロというのはやめろ。
意味が違う。
0126 NGNG
VBAは 真黒という(謎)
0127 NGNG
複数のセルを選択している状態は、どのようにして知ることが できるのでしょうか?
0128デフォルトの名無しさん NGNG
>>127
言ってる意味がわからないので適当です。

Sub aaa()

Dim i As Long

Range("A1,C5,D7").Select
For i = 1 To Selection.Areas.Count
MsgBox "数" & i & Chr(13) & "アドレス" & Selection.Areas(i).Address
Next i

End Sub
0129デフォルトの名無しさんNGNG
Shell "ping **.**.**.** -n 1"
とやると、DOSのコンソールに結果が出力されますが、この結果を
シート(セル)に読み込みたいのですが、どうしたら良いのでしょうか
0130デフォルトの名無しさんNGNG
>>129 無理
0131129NGNG
>>130
えっ...そうなんですか、てっきり出来るもんだとばかり...
以外な結末にちょっと唖然としてます
0132デフォルトの名無しさんNGNG
エクセルのVBAでActiveXを作りたいのですがどうすれば作れるのでしょうか?
教えてください。
0133デフォルトの名無しさん NGNG
>>130
いや、できるって。
とりあえず、糞みたいな方法だと、
Shell "ping **.**.**.** -n 1"   > *****
ってやって
テキストにして読み込むなんてすればいいんでないの?
たぶん、他にも方法があると思うけど眠いから寝る。
0134133NGNG
すこし起きれたのでサンプル (いいかげんですまん)

Sub ボタン1_Click()

Shell "command.com /c ping **.**.**.** > C:\@aaa.txt"
strFileName = "C:\@aaa.txt"
Set objFileSystem = CreateObject("Scripting.FileSystemObject")
Set objFile = objFileSystem.OpenTextFile(strFileName)
Do Until objFile.AtEndOfStream
strecBuff = objFile.ReadLine
i = i + 1
Cells(i, 1).Value = strecBuff
Loop
objFile.Close

End Sub

0135デフォルトの名無しさんNGNG
>>130
    ∩__∩
くまの( ´,_ゝ`)プッさん
0136129NGNG
>>134
resありがとうございます
私もリダイレクトしてファイルに落とすという方法は思いついたんですが
Shell "ping **.**.**.** > C:\@aaa.txt"
とすると、なぜかリダイレクトされなかったんですよ
"command.com /c"を付ければ良かったんですね..出来ました(^_^;)
0137デフォルトの名無しさんNGNG
シートにはりつけた コンポボックスにフォーカスを移したいんですが、どのようにすればいいのでしょうか?
0138笑ってくださいNGNG
VBAで1行目から10行目を選択するのは
Rows("1:10").Select
ですが
1行めをX(変数)にしたい時はどうなるのか教えてください。
区切り方が分かりません。
どなたかお願いします。
0139デフォルトの名無しさんNGNG
Rows(x & ":10").Select
0140笑ってくださいNGNG
>>139
動きました。
本当にありがとうございますm(__)m
0141129NGNG
コマンドボタンの Caption なんですが、2行以上に分けて表示することは
可能でしょうか?
0142デフォルトの名無しさんNGNG
ハァ。
CommandButton1.Caption = "1行目" & vbCrLf & "2行目"
0143129NGNG
>>142
プロパティからは出来ないって事でしょうか?
0144129NGNG
>CommandButton1.Caption = "1行目" & vbCrLf & "2行目"
で、変更したCaptionを見ると"1行目・・2行目"と表示されます
それで、試しに一度消して、"1行目・・2行目"と入れると...
駄目でした(*_*)
やっぱりVBAからでないと出来ないみたいですね
0145デフォルトの名無しさんNGNG
シートに貼り付けたコマンドボタンの位置が、どんなに スクロールさせても
常に 表示させてる状態にするには どのようにしたらいいのでしょうか?

0146デフォルトの名無しさんNGNG
シートをスクロールさせた時に 発生するイベントってありますか?
0147デフォルトの名無しさんNGNG
Workbook_BeforeCloseのイベントで
ThisWorkbook.Saved = True
って やってるんだけど、保存しますか? ときいてきます。

右上の×で クローズさせる時に、 ThisWorkbook.Saved = True
ってのは できないんでしょうか?
0148デフォルトの名無しさんNGNG
>>147
ブックが他に開いていた
ってオチじゃないの?
0149(´・ω・`)ショボーンNGNG
(´・ω・`)ショボーン
0150デフォルトの名無しさんNGNG
シートにテキストボックスやオプションボタンを貼り付けたのですが、
Tabキーを押しても次のテキストボックス等に移動してくれません。
対処方法を教えて?

もうひとつ。
CommandButton1.Value = ""
      ・
      ・
CommandButton10.Value = ""
を変数iとFor文で記述することはできないのでしょうか?

0151デフォルトの名無しさんNGNG
おまいら、結構やさしーんだな.........
0152デフォルトの名無しさんNGNG
バグってるVBA使うよりVBからアタッチした方が
話早くない?
0153デフォルトの名無しさんNGNG
>>150
コレクション使え。
0154デフォルトの名無しさんNGNG
ESCキーによる処理の中断を無効化したいです。

BrowseForFolder関数でもAPIのSHBrowseForFolder関数でもいいのですが、
フォルダを参照するダイアログを出すマクロの話です。

フォルダの参照ダイアログが出ている間にESCキーを押すと
処理が中断してデバッグ画面(VBAエディタ)になってしまいます。
On Errorでは引っかかってくれないので、ダイアログを出す直前で
「Application.EnableCancelKey = xlDisabled」をしています。

しかしダイアログを出す前後は処理が中断しないのですが、
その後の処理(違うサブルーチン)で処理の中断になってしまうのです。

ttp://www.projecta.co.jp/mybooks/book05-3.htm
上のページの一番下から2番目が答えっぽいけど・・・
0155デフォルトの名無しさんNGNG
こんなところで きいても反応少ないよなぁ。
やっぱし ココか。
http://www.ae.wakwak.com/cgi-bin/sbox/~efc21/wwwlng.cgi
0156129NGNG
ShellでPINGを打つという件ですが、クライアントが10〜20台位有る等から
PINGのBATを生成して、それをshellで起動する事にしました

この場合、batが終了するまで5〜10秒位掛かります
しかし、shellでbatを起動すると、batが終わる前に次の命令が実行されてしまいます
次の命令は、batで生成されたはずのファイルを読み込む命令なので、batが終わるまで
待つ必要があります
今のところ(プロトタイプでは)20秒のweitを入れてうまく動いているんですが
今後、実用段階になった場合、いろいろな環境で使われる可能性があり、20秒では
十分でない可能性があります

そこで、質問なんですが、
shellで起動したプログラムが終了したかどうかをチェックする方法は無いでしょうか?
0157デフォルトの名無しさんNGNG
>>156
そんなこと Excel VBAでは できません(w
0158デフォルトの名無しさんNGNG
>>156
Win32APIを使えば可能
ttp://homepage2.nifty.com/housaka/excel/vbafaq11.html
0159デフォルトの名無しさんNGNG
>>156
Win32APIを使わなくても可能
  CreateObject("WScript.Shell").Run "c:\path\hoge.bat", , True
0160129NGNG
>>158
ありがとうございました、出来ました
ひとつ気になった事があるんですが、
 Private Declare Function OpenProcess Lib "kernel32"......
は、たぶん"kernel32"というライブラリーを読み込んでいるんじゃないかと思われるんですが
たまたま私の環境(win-nt/excel2000)ではそのまま実行できたんですが、excel97等でも
実行できるんでしょうか?
0161デフォルトの名無しさんNGNG
できる。
0162129NGNG
>>159
158さんの方法を試している間に書き込んでいただいたようで、ありがとうございます
これでも出来ました、簡単でいいですね(^_^)
"WScript.Shell"って実行環境について制限は有りますか?

>>161
ありがとうございました
0163デフォルトの名無しさんNGNG
> "WScript.Shell"って実行環境について制限は有りますか?

・Excelのバージョンが2000以降
・OSがWin98/2000以降
・IEのバージョンが5.0以降
・WSHを自分でインストールした環境
上の条件のうち、いずれか1つでも満たしている環境なら動くはず。

でも、環境を気にせず確実に動かしたいならAPIの方がおすすめ。
0164129NGNG
>>163

>・IEのバージョンが5.0以降

これでクリア出来そうです、私の知る限り IE5.01 以上が入っているはずなんで
ありがとうございました
0165デフォルトの名無しさんNGNG
エクセルでセルに半角文字が入力されたらまずいので
それをチェックする関数を作成したいのですが、
方法が思いつきません。
Asc()を駆使すればいけるような想像もしているのですが、
非常に効率が悪く思えます。
いい方法あれば教えていただけませんか?
よろしくお願いします。
0166デフォルトの名無しさんNGNG
>165
半角 VBA 判断
ググレ
0167165NGNG
>164
なるほど、StrConvで変換してみて
戻り値で元の文字列と比較してみて
変換されてたら半角文字列だったってことですね。
なるほど。
目的が変換じゃなくて「チェック」だったので
気付きませんでした。
ありがとうございました。
0168166NGNG
いや、俺もためになった。。。
0169デフォルトの名無しさんNGNG
フツーに出してるのXMLもどきじゃなかったっけ?
0170デフォルトの名無しさんNGNG
いいんだよ、どうせ素人向けなんだから。
0171デフォルトの名無しさんNGNG
>>169=170
意味不明の自作自演
0172デフォルトの名無しさんNGNG
VBAは 真黒という(謎)
0173デフォルトの名無しさんNGNG
VBAからdll呼び出せるでしょうか。
できるなら方法を教えてください。
0174デフォルトの名無しさんNGNG
>>173
WinAPIのLoadLibrary
(やったことないからしらんけど)
0175デフォルトの名無しさんNGNG
>>174
WinAPI自体がDLL
0176デフォルトの名無しさんNGNG
>>173
VBAのヘルプでDeclareステートメントを調べてみる
VB Declare でぐぐる
0177デフォルトの名無しさんNGNG
inputboxで入力した文字列を記録してファイルに出力するにはどうすれば?
できればそのScriptと同じ場所に出力したい。
0178デフォルトの名無しさんNGNG
>>177
ファイルを出力するなら
OPEN
WRITE #
PRINT #
CLOSE
この辺りだが、Scriptと同じ場所というのが理解出来ない。
Excelファイルの場所なら CurDir で取れるけど。
0179デフォルトの名無しさんNGNG
おまいら、結構やさしーんだな.........
0180デフォルトの名無しさんNGNG

             ∩
                 | |
                 | |
        ∧_∧   | |   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
       ( ;´Д`)//  < 先生!素人以下の知識しかないプロが居まつ!
      /       /     \___________________
     / /|    /
  __| | .|    |
  \   ̄ ̄ ̄ ̄ ̄ ̄ ̄\
  ||\             \
  ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄
  ||  || ̄ ̄ ̄ ̄ ̄ ̄ ̄||
     .||              ||

0181デフォルトの名無しさんNGNG
VBAって2002でもまだ生きてんの? VBAは.NETはないのか?
0182デフォルトの名無しさんNGNG

             ∩
                 | |
                 | |
        ∧_∧   | |   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
       ( ;´Д`)//  < 先生!俺はC++のプロなんでVBAは素人なんです。
      /       /     \_____________________
     / /|    /
  __| | .|    |
  \   ̄ ̄ ̄ ̄ ̄ ̄ ̄\
  ||\             \
  ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄
  ||  || ̄ ̄ ̄ ̄ ̄ ̄ ̄||
     .||              ||
0183デフォルトの名無しさんNGNG
>>181
M$が作る限りVBAは無くならないと思われ。
0184デフォルトの名無しさんNGNG
>1
VBAはでかいのを作ると動きが不安定になることかなー。

出力のみEXCELと割り切って入力とロジック(?)は別ので組んだほうがいいぞ。
0185ケンNGNG
教えてください。
setfocus.textbox1と命令しているのに、フォーカスされません。
どうしてでしょうか?
’-------------------------------
Private Sub TextBox1_Change()


MsgBox (TextBox1)
TextBox1.SetFocus



End Sub
’------------------
文字がテキストボックスに入力されるたびに、Msgboxでそれを
表示し、またテキストボックスに入力していくというようにしたいのですが
これだと、フォーカスされないので、次の文字がにゅうりょくできないのです。
ちなみに、プロパティーは初期のままです。

0186デフォルトの名無しさんNGNG
>>185
MsgBox が表示されている間は、そのコードはMsgBox (TextBox1)の所で
止まっています。SetFocusまで実行されていません。
意図のことをしたい場合、MsgBoxでは無く、新しく別にフォームを作って
そのフォームをモードレスで表示する必要があります

Private Sub TextBox1_Change()
  If UserForm2.Visible = False Then
    UserForm2.Show vbModeless
  End If
  UserForm2.Label1 = TextBox1
End Sub
こんな感じ。

この場合、全てのフォームがモーダレスになっている必要がありますが。
#フォームのプロパティがShowModal=Flase

まぁ、あんまり良い設計じゃ無いですね。他の方法を考えた方が良いでしょう。
0187デフォルトの名無しさんNGNG
イベントを追加することって出来ますか?
たとえばワークシートオブジェクトにはMouseMoveイベントがないので、
MouseMoveイベントを追加するとか。
0188デフォルトの名無しさんNGNG
VBAはVSAになります。将来はC#でも使えるようになるらしいよ。
0189ケンNGNG
>>186
ありがとうございます。おかげで思い通りの処理を
させることができました。
0190デフォルトの名無しさんNGNG
>>188 はいはい。情報のソースを書いてね。
0191デフォルトの名無しさんNGNG
VSAって情報少なくてよくわかんないんだけど、なんなんだろう?
.NETの時もそうだったんだが、MSの新しい戦略の発表って
いつも抽象的でよく理解できないんだよな。
最近は実例もいっぱい出てきたので、.NETが何を言いたいかやっと
わかってきた所なんだが・・・
俺が頭堅いからか?

でも、VBA=VSAというのは違うと思う・・・
0192VBAは好きだがVBは使わなくなったNGNG
すみません。単純な質問なのですが、メモ帳などテキストエディタで、
aaa[LF]   
bbb
などと2行書いてコピー、ExcelのA1セルをSelectして貼り付けすると、
A1とA2のセル(2行)にそれぞれ、aaaとbbbが入ります。

それをVBAのCodeでやろうとして、
dim S as String
S = "aaa" & chr(10) & "bbb"
とここまで書いて、ハタと困ってしまいました。
cells(1,1).Value = Sとすると、A1セルのみに書き込まれ、A2セルには何も
入りません。(Altキーを押して、1セル内強制改行状態)

クリップボードに、Sの内容を送ろうにも、直接文字列をクリップボードに
送るステートメントがわかりません。

メモ帳からのコピー&ペーストのように、VBAのコードだけで、
chr(10)で区切られた文字列を、貼り付け出来ないでしょうか?
(LFのコードを、いちいちサーチしていく外、無いでしょうか?)
0193U ◆CZtFsGiu0c NGNG
>>192

LFはセル内の改行コードだから当然そうなる。コードの詳細がわからないけど、

cells(1,1).Value = "aaa"
cells(2,1).Value = "bbb"

となるようにコーディングできない? でなきゃ、

S = "aaa" & vbCr & vbLF & "bbb"

でやってみたら?(試してないけど)
0194デフォルトの名無しさんNGNG
>>192
Dim x() As String
Dim S As String
S = "aaa" & vbCrLf & "bbb"
x = Split(S, vbCrLf)
Cells(1).Resize(UBound(x)+1).Value = WorksheetFunction.Transpose(x)

あくまでクリップボードにこだわるなら
Dim xx As New MSForms.DataObject
xx.SetText S
xx.PutInClipboard
Set xx = Nothing
With Sheets("Sheet1")
  .Paste .Cells(1)
End With
0195194NGNG
最後のWith〜End Withのところは
Cells(1).PasteSpecial
でもよかったな。
0196VBAは好きだがVBは使わなくなったNGNG
>>193
駄目です。vb接頭辞の奴を使っても1セル内に全文字が行っちゃいます。

>>194
あっ!配列とは!!すばらしい。
ループで、1文字ずつ文字列の中からサーチなんて面倒なことを考えてました。
しかし、後半の奴は、ユーザ定義型が定義されていないって怒られました。
SetTextとかPutInClipboardなんてのも見慣れませんが…。
Delphiでいうところの、「Clipboard.AsText := 'aaa' + #10 + 'bbb'」
なんてのがVBAには無いようなので、Clipboard経由にしたい時に困っています。

とりあえず、前半のコードで2セルに書き込めましたので、これを利用させて
頂きます。m(_ _)m
0197デフォルトの名無しさんNGNG
>>196
> しかし、後半の奴は、ユーザ定義型が定義されていないって怒られました。

MSFormsを使う時は、「ツール」-「参照設定」の一覧で
Microsoft Forms 2.0 Object Library にチェックを入れないと。

または「挿入」-「ユーザーフォーム」で一旦フォームを
追加してからすぐ削除してもOK (自動的にチェックが入る)。
0198VBAは好きだがVBは使わなくなったNGNG
>>197
出来ました!
DesktopのPCをExcel2002にしてから、Formは一度も使っていなかったらしいです。
NotePCの方で作業する事が多いので…
ありがとうございました!!!
0199デフォルトの名無しさんNGNG
ちょっと教えていただきたいのですが
VBAで円形(oval)のShapeだけを抽出する事ってできるのでしょうか?
ovalだけデリートって作業をしたいのですが
SelectAllやるとどうしても、グラフまで選択してしまうんで・・・
どなたか良い方法を教えていただけないでしょうか?
0200デフォルトの名無しさんNGNG
>>199
Dim x As Shape
For Each x In Sheets("Sheet1").Shapes
  If x.AutoShapeType = msoShapeOval Then
    x.Delete ' 削除
  End If
Next
0201デフォルトの名無しさんNGNG
一つ教えてけろっぴ。
ワークシート上で、例えば列Eのセルに書き込んでエンターキーを押せば、
必ず一つ下の行でC列のセルに移行するというプログラムを組んでるが
わからんち。。。
教えてけろ
0202デフォルトの名無しさんNGNG
Excel VBAで英語の発音練習に使うソフトを作るつもりです。
マイク入力をwavで保存し、更に波形まで表示したいのですが、
どうすれば良いでしょうか。
Windows APIを使うらしいのですが、いまいち分かりません。
0203デフォルトの名無しさんNGNG
>>202
(´-`).。oO(どうすればいいんだろう?)
0204202NGNG
ご存知でしたら、ぜひ教えてくださいー。
お願いします。
0205デフォルトの名無しさんNGNG
(´-`).。oO(Windows APIって何だろう?)
0206デフォルトの名無しさんNGNG
僕はExcel VBAで、ホームビデオに映っている人の名前を自動的に判断して、
ビデオラベルを印刷したいのですが、
Excel とビデオデッキのつなぎかたが分かりません。
キャプターでパタン認識するらしいのですが、
キャプターというのを買えば、ビデオとつなげますか?
0207202NGNG
こーゆう奴が例えばWindows APIらしいです。

Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" _
(ByVal lpszSoundName As String, ByVal uFlags As Long) As Long

Sub testsound()
sndPlaySound "C:\test.wav", 0
End Sub
0208デフォルトの名無しさんNGNG
>199
ActiveSheet.oval.Deleteで出来たと思う

0209デフォルトの名無しさんNGNG
>>205
ttp://www.google.co.jp/search?hl=ja&ie=UTF-8&oe=UTF-8&q=%22Windows+API%22&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja
0210デフォルトの名無しさんNGNG
すみません、こちらでも質問させてください。

ユーザーフォームのテキストボックス内で、
半角と全角のスペースを削除したいのですが、
コードがわかりません。
お願いします。
0211あNGNG
>210
こちらでも?
マルチって意味?
それなら嫌われるからやめといた方がいいよ。
また、誤解を招く書き方も駄目。

端っこのスペースを省くなら
Trim
じゃない?
0212210NGNG
>>211
ご丁寧にありがとうございます。
気をつけます。

氏名の入力で姓と名の間にスペースを入れないで処理したいと思っているのですが
が、入力時にスペースをいれて入力されてしまった場合に、
そのスペースを削除できれば、と思っています。
0213あNGNG
>212
VB使いじゃないからうまく説明できないけど、
InStrを使ってスペースの場所を検索して
str=Mid( ?????????(InStr(str,??? ) )
こんなイメージでいけると思う。
引数とかは思い出せない。。
まぁとにかく流れとしては、
InStrでスペースの場所を探す(無ければお終い)
渡す文字列(フルネーム??)は先にTrimかけておくといいと思う。
それで見つかったらMidを使ってスペースより前(苗字?)
を取り出す。
その後またMidを使ってスペースより後(名前?)を取り出して
先ほど取り出した苗字と結合する。
FullName=Myoji & Namae
見たいな感じになるのかな。
さぁ、間違ってたら他の人頼む。

0214デフォルトの名無しさんNGNG
s = textbox1
L = Len(s)
t = ""
For i = 1 To L
 c = Mid(s,i,1)
 If c <> " " And c <> " " Then t = t & c
Next
textbox1 = t
0215210NGNG
>>213-214
解決しました。ありがとうございます。
レスが遅くなってすみません。

>>213
InStrですと、スペースの検索ができませんでした。
エラーになってしまって。
ご丁寧にありがとうございます。

>>214
ありがとうございます。
教えていただいたコードを少しいじらせていただいたらできました。
本当にありがとうございました。
0216デフォルトの名無しさんNGNG
VBAでマクロを用いて大量のグラフを作る羽目になったのですが。
グラフの出力をオブジェクトにしようか、グラフシートにしようか
悩んでいます。自分としてはグラフシートに出力したいのですが。
数十枚の枚数が要りそうで足りるかどうか心配なのですが
一つのファイルに作れるグラフシートの最大数。ご存知の方おられませんか?
0217216NGNG
EXCEL2000での話です。すみません。
0218デフォルトの名無しさんNGNG
思うんですけど、この手の質問って、実際にやってみれば分かるんじゃないですか?
0219デフォルトの名無しさんNGNG
>>216

適当なデータをグラフシートに出力するマクロを作って、for-nextで回してみました。
あまりループの回数を大きくすると応答なしになってしまうので、100刻みで取り敢えず
1000個まで作れる事を確認しました。

この場合のワークシートの大きさは3×3の要素の棒グラフで3Mバイトと大したことは
ありません。

これはあくまでも予想ですが、65535個ぐらいまでは作れそうな気がします。そこまで
行ったら非実用的ですが。
0220デフォルトの名無しさんNGNG
>219
出力先を別のブックにするようにすれば無限に作っていけるんじゃない?
0221デフォルトの名無しさんNGNG
シート内の全てのトグルボタンやチェックボックスを
計算中は非表示にしたいんですが
効率のいい方法はなにかありますか?
0222216NGNG
お蔭様で上手くいきました。どうも有り難うございます。m(__)m
0223デフォルトの名無しさんNGNG
>>221
トグルボタンとチェックボックスだけという区別方法は分からないけど、
次のプログラムはコントロールを計算中消してくれる。

Dim x As Shape

For Each x In Sheets("Sheet1").Shapes
If x.Type = msoOLEControlObject Then
x.Visible = False
End If
Next

Calculate

'計算処理を行う

For Each x In Sheets("Sheet1").Shapes
If x.Type = msoOLEControlObject Then
x.Visible = True
End If
Next
0224デフォルトの名無しさんNGNG
>>223
ありゃ、俺、msoOLEControlObject チェックしてなかったような気がする。
問題無かったし・・・つか、フォームコントロールがはじかれるな。これ。
ま、本質じゃないし、msoFormControl とかも対象に入れればOKだ。
0225デフォルトの名無しさんNGNG
>>224
フォームコントロールも使うなら種類がチェックできますね。ActiveXコントロールの
種類を区別できる方法があったら知りたいです。

Dim x As Shape
For Each x In Sheets("Sheet1").Shapes
If x.Type = msoOLEControlObject Then
x.Visible = False
ElseIf x.Type = msoFormControl And (x.FormControlType = xlCheckBox Or x.FormControlType = xlOptionButton) Then
x.Visible = False
End If
Next

Calculate

'計算処理

For Each x In Sheets("Sheet1").Shapes
If x.Type = msoOLEControlObject Then
x.Visible = True
ElseIf x.Type = msoFormControl And (x.FormControlType = xlCheckBox Or x.FormControlType = xlOptionButton) Then
x.Visible = True
End If
Next
0226デフォルトの名無しさんNGNG
質問です。
セルに記入された日付を参照して曜日をだしたいのですが、
(A1に年、A2に月、A3に日を入力してその値を参照)
Weekday(Range("A1") / Range("A2") / Range("A3"))
とやってみても、
変数に読み込んでみてもうまくいきません。
何かいい方法はありませんか?
0227デフォルトの名無しさんNGNG
>>226
Weekday(Format(Range("A1")) + "/" + Format(Range("A2")) + "/" + Format(Range("A3")))
0228デフォルトの名無しさんNGNG
さらに曜日を表示するには
Format(Weekday(Format(Range("A1")) + "/" + Format(Range("A2")) + "/" + Format(Range("A3"))), "dddd")
まあこれはいらないと思うけど一応書いておくね。
0229デフォルトの名無しさんNGNG
>>227-228

ありがとうございます、助かりました。
いつか質問に答える側を目指して精進いたします。
0230デフォルトの名無しさんNGNG
コマンドプロンプト上で、
>hoge.exe とやるとうまく動くのですが、
Excelにコマンドボタンを配置し、以下のマクロを登録、実行すると
コマンドプロンプトの時と違う挙動を示します。

Sub Run()
CreateObject("WScript.Shell").Run ActiveWorkbook.Path & "hoge.exe", , True
End Sub

何が原因と考えられるでしょうか。
0231デフォルトの名無しさんNGNG
>>230
挙動が異なるとは具体的にどういう事を指すのかわかりかねますが、Runメソッドに
与えるコマンド文字列のパス中にスペースが入るとエラーになるようです。

CreateObject("WScript.Shell").Run Chr(34) + ActiveWorkbook.Path + "\hoge.exe" + Chr(34), , True

のようにしたら動きませんか。
0232230NGNG
>231
レスありがとうございます。

挙動不審の原因が分かり、自力で解決できました。
原因は hoge.exe 中でファイル tako をオープンしていたのですが、
エクセルから実行させるときは、hoge.exe 中で
tako のパスを指定しなければならないというものした。
同じフォルダにあれば、パスはいらないと思っていたのですけどね。
0233デフォルトの名無しさんNGNG
>>232
そうでしたか。それはよかったです。
カレントディレクトリの意味がわかれば解決できますね。
0234デフォルトの名無しさんNGNG
Excel2000からセーブ時にWebページとして保存できますが、
このときchartオブジェクトはgifファイルに変換されますよね。
この機能だけ単独で使いたいのですが何かよい方法はないでしょうか?
今はSaveAsメソッドにxlHtmlをオプションで渡し、
できあがったファイル群からgifファイルを抜き出すと言う手法を用いているのですが
いまいちスマートではないので、他に方法があったらおしえてください。
0235デフォルトの名無しさんNGNG
excel chart export
0236デフォルトの名無しさんNGNG
>>235
アドバイスありがとうございました。

chartオブジェクトにexportなんてメソッドがあるの知らなかった。
97からか?
今まで95ばかりだったので知らなかった。
0237デフォルトの名無しさんNGNG
初歩的な質問ですみませんが
ActiveSheet.UsedRange.Address
で帰ってきた選択範囲
$G$10:$BA$571などを
をcells形式で所得したいのですが
どうすればいいでしょうか
0238デフォルトの名無しさんNGNG
>>237
所得すると税金がかかるぜよ。
ところでCells形式にして何に使うの?
目的がわからん。
ActiveSheet.UsedRange自体がRangeオブジェクトだから、そのまま
使えばいいんじゃないのか?
0239デフォルトの名無しさんNGNG
VBAでオーナードローしてる人いる?
0240237NGNG
>$G$10:$BA$571などををcells形式で所得したいのですが
データ範囲の上端、下端、右端、左端の位置が欲しかったのです。
しかたないので入門書と格闘しながら
Function kiridasi(x As String) As Integer
Dim a As Integer, b As Integer, c As String, x As String
'$D$5:$H$9のような範囲が与えられた時 初めの$Dを抜き出し4にする。
a = 2 '最初の$から
b = InStr(a, x, "$", 1) '次の$まで
c = Mid(x, a, b - a) '抜き出し。
x = Mid(x, b) '元の文字列から抜いた分を取り除く。Xは$5:$H$9になる

If IsNumeric(c) = "False" Then '文字なら数字に直して返し
If b - a = 1 Then
kiridasi = Asc(c) - 64
Else: kiridasi = Asc(Mid(c, 2) - 64) + Asc(Mid(c, 1, 1) - 64) * 24
End If
Else: kiridasi = Val(c) '数字ならそのままの値を返す
End If
End Function
というサブルーチンを作っていざ実行しようとすると
ByRef 引数の型が一致しません とでるので困っています。
x = Mid(x, b) の行のところが明らかにおかしくなるのですが、
一体どのような問題なのでしょうか?どなたか御指摘頂けませんか?
変数のスコープの問題のように思ったのですが良く分かりません。
0241デフォルトの名無しさん NGNG
>240
ByValにしたら
0242240NGNG
ByValにしたら始めの一回目は上手くいきますが
結局元の文字列変わらないので何回やっても最初のDしか変換できません,,,困った
0243デフォルトの名無しさんNGNG
'左上のセルを返す
Private Function LeftTopR(ByVal r As Range) As Range
 Set LeftTopR = _
  r.Parent.Cells(r.Row, r.Column)
End Function

'右下のセルを返す
Private Function RightBottomR(ByVal r As Range) As Range
 Set RightBottomR = _
  r.Parent.Cells(r.Row + r.Rows.Count - 1, r.Column + r.Columns.Count - 1)
End Function
0244デフォルトの名無しさんNGNG
With ActiveSheet.UsedRange
  Debug.Print .Item(1).Address
  Debug.Print .Item(1, .Columns.Count).Address
  Debug.Print .Item(.Rows.Count, 1).Address
  Debug.Print .Item(.Count).Address
End With

でいいじゃん。
0245デフォルトの名無しさんNGNG
>>240
>データ範囲の上端、下端、右端、左端の位置が欲しかったのです。
その位置を何に使うのか書いてみれ。
大体余計な取得をするやつはヘタクソと相場が決まっているのだが。

繰り返すがActiveSheet.UsedRangeはRangeオブジェクトだよ。
そのまま使えばいいんじゃないのか?

0246245NGNG
>>240
もしかして行番号や列番号を使ってCells形式でループを回すのか?
For Each Nextを使えばそんなもの必要ないから違うだろうな。
0247デフォルトの名無しさんNGNG
廃れてるな。
0248240NGNG
シートに新しい入力をする時それまでの入力と被らないように
データの入力の限界を求めようとしたんですが...
ようやく解決しました。お手数かけてすみません。
まだVBA始めてたったの数週間の素人なもので
0249デフォルトの名無しさんNGNG
EXCEL2002(Win)で正規表現の置換がしたいんだけど、具体的にどうするの?
例えば
A = "ab" & vbCrLf & "xy"
B = s/$/z/g
で
B に "abz" & vbCrLf & "xyz" が入るようにしたい。
0250デフォルトの名無しさんNGNG
性器表現
0251デフォルトの名無しさんNGNG
正規表現はVBSのRegExpオブジェクトを使えばできるけど、
この程度ならReplace関数でもできるだろ。

A = "ab" & vbCrLf & "xy"
B = "z"
MsgBox Replace(A, vbCrLf, B & vbCrLf) & B
0252249NGNG
>>251
ありがと。RegExpってのがキーワードね。
0253デフォルトの名無しさんNGNG
教えてください。

エクセル2000でテキスト開いて
テキスト形式で保存する時
"があるとその前後に勝手に"がついてきて
困ってます。
どうするとなくなりますか?
0254254NGNG
すみませんがオプションボタンに同じ名前をつけてコントロール配列を使おうとすると
Nameプロパティを設定できません。名前を特定できません。と出て、
リネームできないんですがコントロール配列はVBだけでExcelVBAでは使えないんですか?
0255デフォルトの名無しさんNGNG
クラスモジュールによる擬似コントロール配列の作成
ttp://www.moug.net/skillup/opm/opm08-01.htm
0256254NGNG
どうも有り難うございました。m(_ _)m
0257デフォルトの名無しさんNGNG
エクセル2000のVBAで他のアプリ(メモ帳など)から切り取ったテキスト文を
inputboxのdefaultに使いたいのですが、
その方法が良く分かりません。Clipboard.GetTextを使うような気がしますが
具体的にはどうすれば良いのでしょうか?
0258257NGNG
色々試してみても上手くいかず、埒があかないため
他の方にお伺いすることにします。失礼しました。
0259デフォルトの名無しさんNGNG
>258
Dim MyData as DataObject

Private Sub CommandButton1_Click()
Dim s As String

TextBox1.SelStart = 0
TextBox1.SelLength = TextBox1.TextLength
TextBox1.Copy

MyData.GetFromClipboard
s = InputBox("", "", MyData.GetText(1))
End Sub

0260デフォルトの名無しさんNGNG
>>257>>258
例えばテキストボックスに貼り付けるだけなら

TextBox1.Value = ""
TextBox1.Paste

ではいかんの?
0261デフォルトの名無しさんNGNG
こんな風にしてもいいが面倒くさい。

Dim dat As DataObject
Set dat = New DataObject
dat.GetFromClipboard
TextBox1.Text = dat.GetText(1)
0262257NGNG
>>259
>>260
>>261さん、おかげさまで上手くいきました。
有難うございます。
0263デフォルトの名無しさんNGNG
エクセルのVBAで10秒たつと処理が始まるようにしたいんですが・・・
なにかおすすめの方法はありませんか
0264デフォルトの名無しさんNGNG
>>263
APIのsleep関数を使う。
0265デフォルトの名無しさんNGNG
>263
「10秒経ったらこのボタンをおしてください」
というボタンを置く
0266263NGNG
>>264
なるほど sleep関数勉強してみます 

>>265
 それもありですね・・・
0267デフォルトの名無しさんNGNG
お願いします、助けてください。検索してもぜんぜん見つからない・・・・・

RND関数では、負の乱数を発生させることができません。標準分布抽出方の乱数をEXCEL上で使わねばならず、VBAでやることできず困っています。

詳しい方おながいします!
0268デフォルトの名無しさんNGNG
-つけりゃいいじゃん
0269デフォルトの名無しさんNGNG
>>268
ああー、早速のレスありがとう。ち、ち、違うんですー!
正戸負両方の乱数が欲しいんですー。
マイナスつけたら負の乱数だけになるー。
(ToT)
0270デフォルトの名無しさんNGNG
>>269
-5から5を発生させたかったら、0〜10の数をRNDで作って5を引く。
難しかったかな?
0271デフォルトの名無しさんNGNG
0.5引く。そっから2倍して使うもよし。
0272デフォルトの名無しさんNGNG
>>270
>>271
RNDって、(擬似)正規標準分布で0.5が平均なんですね?
知らなかった。ありがとうございます。
0273デフォルトの名無しさんNGNG
>>270
>>271
おお、イイ!ホント、イイかんです。今チェックしたら、ちゃんとイイ感じでした。お二方さん、ありがとう!
0274デフォルトの名無しさんNGNG
「ち、ち、違うんですー!」
ってなんか萌える。
0275デフォルトの名無しさんNGNG
>>274
それって、挿入するときのこと想像しているでしょう?
0276デフォルトの名無しさんNGNG
275はかなりエロい。
0277デフォルトの名無しさんNGNG
>263
timeかtimer関数でも出来る(日付をまたぐとどうなるか知らん)

>273
272のツッコミを無視して大丈夫?
解ってスルーしてるなら良いけど
0278デフォルトの名無しさんNGNG
誰か272にいちようツッコミを入れてあげてください
0279デフォルトの名無しさんNGNG
Excel VBAで作ったものを売り出すんだけど、
いくらまでなら許せる?
0280デフォルトの名無しさんNGNG
>279
それ使うといくら儲かる?
0281デフォルトの名無しさんNGNG
0円
0282デフォルトの名無しさんNGNG
マクロを先週覚えた初心者ですが、このスレは初心者OK?
0283デフォルトの名無しさんNGNG
Excelには Application.WaitやApplication.OnTime というものがあるのだが。

それと俺には >>277の
> 272のツッコミを無視して大丈夫?
> 解ってスルーしてるなら良いけど
この意味がサッパリわからん。

>>282
OKですが、何か?
0284デフォルトの名無しさんNGNG
先ほどは親切にありがとうございました!!!!!
たびたびすみません!
ExcelのVBAからC++でビルドされたバイナリ呼び出す手法を急に勉強しないといけなくなりました!!!!!
推薦図書おながいします!!!!!

0285デフォルトの名無しさんNGNG
バイナリって何形式よ?
DLLならヘルプでDeclareステートメント見ろ。
0286デフォルトの名無しさんNGNG
DLLです!わかりました、ありがとうございました!早速調べてみます!
VBA暦12時間・・・・・とほほ・・・・・
0287デフォルトの名無しさんNGNG
>>284>>286です。
書籍のほうもよろしくお願いします。やっぱりあったほうがいい。
0288デフォルトの名無しさんNGNG
書籍は俺はわからんからパス。

VB(.NETでなく旧VB)は持ってないの?
VBからDLLを呼び出すのと方法はまったく同じなので、
VBの方で調べてみた方が情報がたくさんあると思う。
0289282NGNG
初心者OKみたいなのでお言葉に甘えて。

入力というsheetとリストというシートを作りました。
リストのK1セルに「=COUNT(A:A)+1」という数式を入れときます。

入力シートのB1セルに書いた文字をリストのB2に
入力シートのB2セルに書いた文字をリストのC2に
入力シートのB3セルに書いた文字をリストのD2にそれぞれ貼って行きたい。
リストのA2には「2」が入るようにしたいのです。

そしてその次からは続くように
入力シートのB1セルに書いた文字をリストのB3に
入力シートのB2セルに書いた文字をリストのC3に
入力シートのB3セルに書いた文字をリストのD3にそれぞれ貼って行きたい。
リストのA2には「3」が入るようにしたいのです。
ちなみに書いたのは
Sub データ貼付()
'
' 入力シートからリストシートへデータ貼り付け

行番号 = Sheets("リスト").Range(K1)

Sheets("リスト").Range(K1) = Sheets("リスト").Cells(行番号, 1).Value
Sheets("入力").Range(b1).Value = Sheets("リスト").Cells(行番号, 2).Value
Sheets("入力").Range(b2).Value = Sheets("リスト").Cells(行番号, 3).Value
Sheets("入力").Range(b3).Value = Sheets("リスト").Cells(行番号, 4).Value
Sheets("入力").Range(b4).Value = Sheets("リスト").Cells(行番号, 5).Value
Sheets("入力").Range(b5).Value = Sheets("リスト").Cells(行番号, 6).Value
0290デフォルトの名無しさんNGNG
>283
RND()は正規分布じゃなくて一様分布なのだが、そのまま使ったりしてないだろうなぁということ
267を見る限り不安だ(w
0291デフォルトの名無しさんNGNG
>>290
やっぱり・・・・・
しばらく使ってみてて、これってどうやら擬似標準正規分布じゃないな、と思いました。
だって、オプションの数値解がおかしかったんだもん。でも、デルタヘッジの有用性を
調べたいだけなので、現時点では問題ないと思う。とにかく、いろいろと親切にありが
とう。ここのスレの人たちイイ人。
0292デフォルトの名無しさんNGNG
>>289
入力シートは常に同じ場所に入力して、リストの方だけが増えていくということね?
説明の方はセルが3つでコードの方は5つあるけど、セルの数は決まってないの?

1回ずつコマンドボタンか何かで転記するの?
0293282NGNG
>>292
>入力シートは常に同じ場所に入力して、リストの方だけが増えていくということね?
全くその通りです

>説明の方はセルが3つでコードの方は5つあるけど、セルの数は決まってないの?
レスとして書くのは3つくらいがいいかと思って省略しちゃいました・・・

>1回ずつコマンドボタンか何かで転記するの?
はい。ボタンにマクロを登録します。入力したものはクリアーもする予定です。
0294282NGNG
>>282 の自分のレスで訂正
○ リストのA2には「3」が入るようにしたいのです。
× リストのA3には「3」が入るようにしたいのです。
0295デフォルトの名無しさんNGNG
> レスとして書くのは3つくらいがいいかと思って省略しちゃいました・・・
だから結局ここのところはどうなのよ?
仕様がわからんから 5個固定にしたよ。

あと、K1セルを作らなくても最終行を取得して追加すればいいと思うので、
勝手にそうした。
Dim wsList As Worksheet
Dim 行番号 As Long
Dim 入力数 As Long
入力数 = 5

Set wsList = Worksheets("リスト")
With wsList.Cells(wsList.Rows.Count, 1).End(xlUp)
  行番号 = .Row + 1 + IsEmpty(.Value)
End With

With wsList.Cells(行番号, 1)
  .Value = 行番号
  .Offset(, 1).Resize(, 入力数).Value = _
    WorksheetFunction.Transpose(Sheets("入力").Range("B1").Resize(入力数))
End With
0296282NGNG
>>295 ありがとうございます。5個で良いのです。
自分のはどこが違ってたか、>>295の内容は分からないですが、ひとまず動きました。
もっとよく勉強して出直してきます。
遅い時間まで本当にありがとうでした。
0297295NGNG
> 自分のはどこが違ってたか、

代入の左辺と右辺が逆だし、k1とかb1とかはダブルクォーテーション記号
で括って文字列にする必要がある。

295のコードは
リストシートの1行目が空欄の場合も2行目から始めてよければ、
もうちょっとシンプルにできる。

Sub データ貼付()

Const 入力数 = 5
With Sheets("リスト").Range("A65536").End(xlUp).Offset(1)
  .Value = .Row
  .Offset(,1).Resize(,入力数).Value = _
    WorksheetFunction.Transpose(Sheets("入力").Range("B1").Resize(入力数))
End With

End Sub
0298デフォルトの名無しさんNGNG
>>291
乱数12個足して6引く。
0299282NGNG
説明書を絶対読まない自分。
本の一部見て、わかりもしないくせに自分なりにアレンジしたのがダメでした。
初めて2chをありがたいと思ったよ。thanks>>295
0300デフォルトの名無しさんNGNG
300ゲッと。
0301デフォルトの名無しさんNGNG
dd
0302デフォルトの名無しさんNGNG
>>298
自分で背景理論的正当性がわかんないけど、やってみます。
0303デフォルトの名無しさんNGNG
ここのスレの住人の人で、C++のCOMのDLL呼び出している人いますか?
ご提案どおりHELP見たり検索したりしたんですけど、具体的な手法がわからないままなんです。
0304デフォルトの名無しさんNGNG
COMにC++とか関係あるの?
0305デフォルトの名無しさんNGNG
>>304
だとしたら全然Common Object Modelじゃないな。
0306デフォルトの名無しさんNGNG
おまえら、VBAでlogexを計算するプログラムを教えて下さい。
0307デフォルトの名無しさんNGNG
>>303
お前もう、いいかげんしつこいし、全然わかってないよ。

COMのDLLを呼び出すもなにも、
VBAでオブジェクトを扱う=COMのEXEまたはDLLの呼び出し
なんだよ。

最初に参照設定をしとけば、あとはお前がVBA側で
それを意識する必要はない。
MsgBox Application.Path
これもCOMのオブジェクトの呼び出しなんだよ。

お前そんなこともわからないで本当にC++で
COMコンポーネントを作れるのか?
0308デフォルトの名無しさんNGNG
>>307
ごめんなさい。ぼく低学歴で知能指数も低いんです。Rogersonの参考書の範囲で
しか知らないんです。ずっと検索したりヘルプから探してるんだけど、なぜかきっか
けすらつかめません。あなたはきっとぼくよりも高学歴で高給でスキルも持ってら
っしゃると思います。お情けと思って、参考書をご存知なら教えてくださいませんか?
0309デフォルトの名無しさんNGNG
釣りに付き合うのも飽きたな。もうそろそろ「釣れた」って言って良いよ。
0310デフォルトの名無しさんNGNG
>>309
これはネタではありませんよ。ホントです。おながいします。
0311デフォルトの名無しさんNGNG
「低学歴で知能指数も低い」のなら、参考書なんか読んでも分りませんよ。

0312デフォルトの名無しさんNGNG
>>311
そうおっしゃらずに、バカを助けると思って・・・・・
ご存知の方、おながいします。
0313デフォルトの名無しさんNGNG
しつこいな。これが最後だ。
VBAの入門書をどれでもいいから買え。
VBAのステートメントを数個覚えるだけで自動的に呼び出せるのに
専用の書籍なんかあるかボケ。
0314デフォルトの名無しさんNGNG
書店で立ち読みして自分に合いそうな物を買えばいいんだよ。
「おながいします」って何だよ、ふざけるな。
0315デフォルトの名無しさんNGNG
まあまあ・・・
0316デフォルトの名無しさんNGNG
マーマー
0317デフォルトの名無しさんNGNG
低学歴で知能指数も年俸も低い哀れな男を助けると思ってください。
参考書はちゃんと持っていますし、活用しています。
Inside COM, MSP, Rogerson
Excel 97 VBA辞典 翔泳社変

それにしてもこんなに検索もHELPも使えなかった事例はありません。とほほ・・・・・
0318デフォルトの名無しさんNGNG
完全放置
0319デフォルトの名無しさんNGNG
>>317
Inside COM を読破できる貴方様を助ける事が出来る香具師など
このスレには居りませんです。
0320殺すケNGNG
自分でCOMを作ってVBAで使いたいナリか?
0321デフォルトの名無しさんNGNG
最後のレスが「釣れた!」なわけだが、釣りとばれてしまって「釣れた!」って言うほどむなしいものはないだろうなぁ。
0322デフォルトの名無しさんNGNG
別にVCでも
ATL使えば簡単にCOM(AxtiveX DLL)
くらい簡単に作成できるのだが...

あとは、対象のDLLに対して
Regsvr32.exe *.dllと登録し
ブビエディタのメニュー ツール 参照設定でチェックすれば
new宣言でクラスが使えるし。
dim cl as new * (補完リストに名前がでてくる)

参照設定しない場合は
クラスをobject型で宣言し
set cl = createobject("DLLプロジェクト名-普通拡張子を除いた名前
レジストリエディタで検索すればでてくる")

あとはそのクラス(cl)に対して操作をするだけ。
使い終わったら最後に
set cl = nothingをつけて解放させる。

それほどキーキー騒ぐほど難しい回答でもないのだが。
0323デフォルトの名無しさんNGNG
> 別にVCでも
> ATL使えば簡単にCOM(AxtiveX DLL)
> くらい簡単に作成できるのだが...

コンパイラ=VC++ とは限らんのだが。
まあ、こんな厨が使えてるとすればATLだろうけどな。

何言ってもわからんアホは放置しとけ。
0324デフォルトの名無しさんNGNG
>>317
Inside COMでは、VC++のなかだけで演習問題を淡々とやっていくだけなので、Excel VBA空何かをいろいろする、というような趣旨の具体的な内容は一切ありません。

>>320
COMの参考書にでてくるようなDLLをVC++で作って、それに実装される関数をExcel VBAから使いたい、ということです。

>>322
親切にありがとうございます。ご指摘の点は感覚的に理解できましたし、今VBAでちょ
っとやってみたら、なんとなくできそうです。やってみます。
ちなみに、COM的なDLLじゃなくて、一番単純で古典的なDLLでも、レジストリにのっち
ゃえば、参照できるんですよね?この線も自分でやって見ますけど。たしか、COMの
参考書にでてくるDLLの書き方には、カウンタとかがあって、初歩的なDLLの書き方
とちょっと違っていたような気がします。もう2年以上も前にやったことなのですが、思
い出しながらやってみます。

0325デフォルトの名無しさんNGNG
>>324
>番単純で古典的なDLLでも
Win32 DLLのことか?
そのDLLとActive X DLL とは全く別物だぞ。
Win32APIを呼ぶ方法(Declare宣言)
で使用しなければならない。
0326デフォルトの名無しさんNGNG
あ、やっぱり。ちょっと、そのWin32APIの路線からやってみます。そっちのほうが簡単
そう。InsideCOMにでてくるC++のDLLはIUnknownとかRefとかが出てくるし、どちらか
といえばややこしそうなので、古典的なDLLのほうが簡単そうだと、自分では思ってい
ます。でも、古典的なDLLも、VBAの『参照』からいろいろできるのでしょうか?なんか
ぱっと見、全然できそうにないように思います。ま、自分でコード書く手間はいといませ
んから、ツール系が使えなくてもいいのですが。レス感謝。バカでゴメン。
0327デフォルトの名無しさんNGNG
釣れすぎ
0328デフォルトの名無しさんNGNG
VBAからSheetのオブジェクト名って変更できますか?
0329デフォルトの名無しさんNGNG
>>328
Sheets("aaa").[_CodeName] = "bbb"
でできた気がする
0330デフォルトの名無しさんNGNG
できた!ありがとういい人
0331デフォルトの名無しさんNGNG
>>329
それじゃエラーになったよ。

Sheets("aaa").Name = "bbb"

で行けるよ。
0332デフォルトの名無しさんNGNG
>>330
あれ、訂正しようと思ったけど、できた?
今やってみたら、
Sheets("aaa").[_CodeName]
という記述ではダメだったわ。

一旦Worksheet型にキャストするか、または
モジュール名を直接指定すればできた。
Dim w As Worksheet
Set w = Sheets("aaa")
w.[_CodeName] = "bbb"
または
Sheet1.[_CodeName] = "bbb"

>>331
それはシート名だろ。質問はシートのモジュール名なんだが。
0333デフォルトの名無しさんNGNG
333げと
>>332
質問者じゃないが良い情報をありがとう。
ヘルプには
「実行時に、このプロパティの値をコードで変更することはできません。」
なんて書かれてますね。
0334丸血NGNG
--------------------------------
1975213
1976172
1982149
198371
1984150
1985112253343
1986122151173
198754
19884
--------------------------------
という
--------------------------------
【西暦】 【コード1】  【コード2】 
               ↑ここは、あれば3,4と続く

に並ぶファイルがあります。
0335丸血NGNG

これを
経年的に見るために

--------------------------------
1975213
1976172
1977
1978
1979
1980
1981
1982149
198371
1984150
1985112253343
1986122151173
198754
19884
--------------------------------
という風に【西暦】を年が`続いていくよう'に
挿入していきたいのです。

アルゴリズムとして
どのように書けばスマートに書けるでしょうか?
0336丸血NGNG
済みません。レイアウト崩れました。
213
172
149
71
150 ,
112 ,253 ,343
122 ,151 ,173
54
4
がコードで
1975
1976
1982
1983
1984
1985
1986
1987
1988
が【西暦】です。
0337デフォルトの名無しさんNGNG
シートに貼り付けてsortメソッド
0338デフォルトの名無しさんNGNG
>>335
西暦とコードを分けてシートに貼り付けて、西暦の優先順位を高くして並べ替え(Sort)
それか、全部のデータを文字列として並べ替え
0339デフォルトの名無しさんNGNG
Excelの関数としてはNormSDist、つまり、標準正規分布があるのに、なぜか、VBAの中では使えません。
VBAのHELPをいろいろ検索したり、ネットでVBAで累積標準正規分布積分を簡単に計算する方法を探し
たのですが、見つかりません。
ビルトイン関数として必ずあるはずだと思うのですが、ご存知の方、教えてくださいませんか?
0340デフォルトの名無しさんNGNG
>>339
Application.NORMSDISTではだめだった?
0341デフォルトの名無しさんNGNG
>>340
ご親切にありがとうございました。うまくいきました。現在、XLLに実装されている関数を呼び出せずに苦労しています。アドインにはちゃんと出るんですが・・・・・
0342デフォルトの名無しさんNGNG
>>341
アドインをVBAから呼び出すという事ですか?
0343デフォルトの名無しさんNGNG
>>342
そうです。でも、自分で今回は解決できました。
Runを使えばよかっただけの話です。(爆)
0344デフォルトの名無しさんNGNG
(爆)使うやつは氏ね。
0345デフォルトの名無しさんNGNG
>>344
つぅか有言実行がルールだろ。
回線切って首つり自殺した奴なんて数えたらきりがないぞ。

>>343は爆死を選択か。まぁ、うまくいけば一瞬だな。
0346デフォルトの名無しさんNGNG
>1
一番の違いはマクロセキュリティのデフォルト値でしょう。
故にブックのモジュールに書くのはやめた方がよい。イベントプロシージャではなく、オブジェクトにマクロ登録すべし。
0347デフォルトの名無しさんNGNG
コンボボックス上で表示される複数の選択肢は、参考書等によれば、シート上の
セルから持ってくる場合がほとんどのようです。

ぼくは、VBAそのものにその選択肢となるものを埋め込んでしまいたいのですが、
やり方がわかりません。

で、いろいろ調べたのですが、シート上から持ってくる方法(つまりすでに知っている
方法)しか見つかりません。

C++のように、文字列の配列みたいなかんじでVBAの中に定義して、コンボボックス
のプルダウンメニューから選択できるようにしたいのです。おながいします。
0348デフォルトの名無しさんNGNG
おながいします。
0349デフォルトの名無しさんNGNG
おながいします。

>>347
単にStringな変数宣言して初期値放り込んでやればいいんでは?
0350デフォルトの名無しさんNGNG
>>349
また徹底していじめられるかと思いましたが、マジレスが着たのでとてもうれしいです。
複数の選択肢をVBAのスクリプトの中で指定したいのです。ご指摘の方法だと、ひと
つしか指定できませんから、コンポボックスでプルダウンしても他になにも出てきませ
ん。Stringで複数の選択肢を配列のように指定して、プルダウンで選択できるように
することができますか?
0351デフォルトの名無しさんNGNG
>>350
>ひとつしか指定できませんから

必要な分その定数的な変数作るとか配列にするとか。手はいくらでもあると思われますが。
0352デフォルトの名無しさんNGNG
>>351
その辺はぼくもなんとなく想像できたのですが、具体的にどうコードを書けばいいか
わかりませんでした。セル範囲を指定する古典的な方法をなんとか応用して、配列
の線、複数の提携文字列の線、両方でアプローチしてみます。プロパティから指定
する方法があれば便利だな、と思ったのですが・・・・・コードも一発でわかるし。
0353デフォルトの名無しさんNGNG
突然の質問ですみません。
シートにオプションボタンを15個くらいつけたら
起動時間がずいぶんかかるようになってしまいました。
これはどうにもならないのでしょうか?
0354352NGNG
コンボボックスのTextプロパティに配列を代入する方法ですが、ダメでした。
ListFillRangeを使ってセルの範囲を使う方法は使いたくないのです。
どなたかよいお知恵を・・・・・
0355デフォルトの名無しさんNGNG
>>354
(´∀` )エヘヘ VB初心者質問スレ Part19
http://pc3.2ch.net/test/read.cgi/tech/1039859691/530

死ねクソマルチ。
0356デフォルトの名無しさんNGNG
フォーム名の名前の文字列でフォームって表示できますか?
UserForms(フォーム名).Show
でうまくいきませんでした。
0357デフォルトの名無しさんNGNG
>>356
直接の方法は無いと思う。
何らかの工夫(例えば表示するコード自体を実行時に生成するとか)をしない限り。

>>350
学習能力ゼロの能無しは放置。
といきたいところだが、いいかげんマジで目障りだから二度と来んな
糞マルチ野郎。
0358デフォルトの名無しさんNGNG
了解しますた。
0359デフォルトの名無しさんNGNG
>347
そんな時にはAddItem メソッド使え

With ComboBox1
.AddItem "おまえ"
.AddItem "ちったー"
.AddItem "生きてるうちに"
.AddItem "頭使えよ"
End With

どうよ
0360デフォルトの名無しさんNGNG
>>359
実は『う〜、世にでているアプリはみんなできてるんだから絶対方法がある
はずだ〜。こうなったらプロパティーを一つ一つ調べてみるべ。』と思って地
道にやっていたら、UserForm_Initialize()のところでAddItemがあることがわ
かりました。で、ここで定義した値が他の関数からうまく参照ができることま
で確認して報告しようと思っていたんですけど、せっかくのご返答ですから、
お礼を兼ねてご報告します。ぼくは低学歴で、年収も低く、キャリアもかなり
しょぼいので、みなさんがまぶしいです。一生懸命検索するよりも、一番最
初の親部分からヘルプをなめるのも有効ですね。
>>359さん、ありがとう。マルチ、ごめんね。
0361デフォルトの名無しさんNGNG
超ウザい。二度と来んなマルチ野郎
0362デフォルトの名無しさんNGNG
>>361
>>360です。なんとかフォームらしいフォームができました。あとはグラフ関連のマクロを書いてなんとか一段落しそうです。
では。

0363デフォルトの名無しさんNGNG



















>>630に抗議します。









0364デフォルトの名無しさんNGNG
Excelマクロで作ったんだけど、
ファイルサイズが700Kでセーブが異様に遅くなってしまった。
で、どこがそんなにでかいのかと思って、
シートとかフォームとか消していったんだけど、
全部消しても300Kまでしか減らなかった。
新規のワークブックは30Kぐらいなのに。
これは何のデータですか?
0365デフォルトの名無しさんNGNG
>>364
なぜかしらんか、VBAで色々編集してるとサイズが大きくなるよね。
新規のブックに全部インポートすれば、かなり小さくなるはず。
0366デフォルトの名無しさんNGNG
初めまして。質問させてください。
EXCEL VBAでWorksheet_Changeを使っているんですが、
そのプロシージャ(?)の中でセルに値を入れると
またWorkSheet_Changeが呼び出されて無限ループになってしまうようです。
数値を扱うのでセルに値を入れるときは文字列型にしたり
パブリック変数でフラッグ立てる真似事したり、
他のワークシートを作ってフラッグ立てる真似事したり(もうメチャクチャ)
どうにもなりません。
プログラミングの経験はN88 BASICだけです。後はLOGO...
絶対何か見逃してるんと思うですけど、もう限界です。
0367デフォルトの名無しさんNGNG


メリークリスマス。。★彡
パートナーは見つかりました?(o^.^o)

http://abba.hp.infoseek.co.jp/1/

0368366NGNG
ごめんなさい、sage忘れました。
今の状態はこんな感じです。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer, j As Integer, k As Byte, h, flag01
Dim first_heat_min(10, 2) As Byte
flag01 = Target
If TypeName(flag01) = "String" Or _
TypeName(flag01) = "Single" Then GoTo Label01
flag01 = ""
h = Empty
For i = 0 To 10
For j = 0 To 2
k = k + 1
h = Cells(k, 6).Value
If TypeName(h) <> "String" Then first_heat_min(i, j) = Cells(k, 6).Value
Next j
Next i
k = 0
For i = 0 To 10
For j = 0 To 2
k = k + 1
If first_heat_min(i, j) <> 0 Then Cells(k, 11) = " " & (first_heat_min(i, j) + 0.0001)
Next j
Next i
Label01:

End Sub
お願いします、何かヒントを下さい
0369デフォルトの名無しさんNGNG
フラグでいいじゃん。何の問題が?
0370366NGNG
>>369
速レスありがとうございます。
フラッグの立て方も間違えてるんでしょうか?
僕は標準モジュール内でパブリック変数を宣言してセルに値を入れる前に
false、いれ終わったらtrueに戻して、
プロシージャ(?)始まったらすぐにfalseならExit Sub
としています。
もしかしたら何か大きな勘違いをしているんでしょうか?
0371デフォルトの名無しさんNGNG
あぁ、これ動かないってこと?
0372366NGNG
>>371
あ、そうですね。
前はWorkSheets_Changeからcallで標準モジュール内のプロシージャ
を呼び出してたんですけど、そうしたら無限ループになってました。
今WorkSheets_Change内でやったら今度は371さんの言う通りに
動きませんでした。最初にフラッグをTrueにせんとあかんかと思って
Double_Clickイベントを先に作ってフラッグをTrueに設定してみたりしましたが
だめでした。
0373デフォルトの名無しさんNGNG
俺の場合

Private Sub Worksheet_Change(ByVal Target As Range)
 Static ExcFlg As Boolean

 '二重起動防止
 If ExcFlg = True Then Exit Sub

 ExcFlg = True

処理...

 ExcFlg = False
End Sub

もっといいのあるかも知れんがとりあえずこれで。寝る。
0374366NGNG
えっと連続投稿で申し訳無いんですけど、
WorkSheet_Changeイベントを一時的に無効にする
メソッド(?)って無いんでしょうか?
0375デフォルトの名無しさんNGNG
確かイベントを止められたはず。でもよけいあれな気が
0376366NGNG
>>373
ありがとうございました。374でダブって申し訳ありませんでした。
なんとかなりました。
Static...勉強不足でした。今からヘルプを読み返します。
0377366NGNG
たびたびすいません。ヘルプを参照したんですが、
>Dim ステートメントの代わりに
>Static ステートメントを使用すると、宣言された変数は、
>モジュールの実行中、値を保持します。
「モジュール」の概念を理解していないので
混乱してしまいました。一晩かけて勉強させて頂きます。
>>369さん、373さん、夜分遅くありがとうございました。
(もしかして同じ方ですか?だったらごめんなさい)
メリークリスマス。
0378デフォルトの名無しさんNGNG
>>374
EnableEventsの事か?
でもこれはエラー処理をしっかりやらないと結構とリ扱いが難しいよ。
0379デフォルトの名無しさんNGNG
>>377
メリークリトリス!
0380366NGNG
>>378
詳細を教えていただけますか?
今ヘルプを参照した限りではそう難しく無さそうなんですが...
どういう場面でエラーが出やすいんでしょうか?
>>379
どもです......ん?
0381デフォルトの名無しさんNGNG
>>380
378ではないが、仮にEnableEventsをFalseにしている状態の時に
実行エラーが発生してプロシージャが中断すると、Falseのままに
なってしまうのでまずいということだと思う。
エラーをトラップしてEnableEventsを元に戻せるようにした方がいいと。

それにしても糞コードだな。
なんで Byte型使ってんの(小さい方がいいと思ってるの)?
なんで k しか使ってないのに i や j でループしてんの?
ループも1ヶ所にまとめられるだろ。↓のような感じで。

Dim h As Variant, i As Long, first_heat_min As Long
Select Case VarType(Target.Value)
  Case vbString, vbSingle: Exit Sub
End Select

For i = 1 To 33
  h = Cells(i, 6).Value
  If VarType(h) <> vbString Then
    first_heat_min = h
    If first_heat_min <> 0 Then
      Application.EnableEvents = False
      Cells(i, 11).Value = " " & (first_heat_min + 0.0001)
      Application.EnableEvents = True
    End If
  End If
Next i
0382381NGNG
ちなみに俺だったら、
Dim r As Range, c As Range
Set r = Intersect(Cells(1,6).Resize(33), Target)
If r Is Nothing Then Exit Sub
For Each c In r
   'ここでc.Valueを判定してから c.Offset(,5).Valueをセット
Next c
のような形にする。
0383366NGNG
>>381
ありがとうございます。参考にさせて頂きます。
>なんで k しか使ってないのに i や j でループしてんの?
ご指摘もっともです。
まだWorksheet_Changeが動くか試してる状態だったんで
とりあえず適当にコードを継ぎ接ぎした結果がこれです。
でも>>382はすごく参考になりました。
ありがとうございます
0384デフォルトの名無しさんNGNG
他のBookのModule内に定義されてる関数を呼ぶのってどうしたらいいんでしょうか?
また、他Bookに置いてあるボタンをVBAのコードから「押す」という動作をさせる事は可能でしょうか?
0385デフォルトの名無しさんNGNG
MACのエクセルVBAでメール送信できないのですが、
WINと同じようにApplication.SendMail recipient:="あどれす", subject:="件名"
では無理なのでしょうか?知っておられればどうか教えてください。
0386デフォルトの名無しさんNGNG
>384

開いてればね
0387デフォルトの名無しさんNGNG
VBA で
Set obj = new MyClass
とかやったとき、必ず実行される C++, Java でいうところの
コンストラクタを探しているんですが、そーゆーのってないんでしょうか?

今は、 init ってサブルーチンを実行前に必ず動かして
お茶を濁していますが。
Set obj = new MyClass
obj.init ' ←コイツ
obj.XXX
0388デフォルトの名無しさんNGNG
2000だと無いんじゃない?
vbだけど.netでコンストラクタが用意されたとかえばってたくらいだから。

initializeイベントをデフォルトコンストラクタとして使うんじゃなかったかしらん?
0389デフォルトの名無しさんNGNG
>>378
VBAにいおけるコンストラクタ:
Private Sub Class_Initialize()
デストラクタ:
Private Sub Class_Terminate()
0390デフォルトの名無しさんNGNG
http://homepage1.nifty.com/CavalierLab/lab/vb/clsmdl/instance_02.html
0391387NGNG
>>388, >>389, >>390
ありがとう!
おかげで AssociatedArray クラスを作れたよ。
Perl の連想配列もどきを実現できました。
これで年明けに来る仕事こなせます。

initialize イベントの発動タイミングがいまいちわからないけど、
こっちの方もいろいろいじってみます。ありがとー。

# なんでこんな大切なものがヘルプで見つからないんだ(ブツブツ
0392387NGNG
もうちょっとわかったので追記。

クラスモジュールを編集するテキストエディットコントロール(っていうの?
のすぐ上にある、 (General)を Class にして、その右にあるコンボボックスから
initialize を選べば自動でプロシージャが挿入されるんだね。
terminate も同様。すばらしい。

イベントの発動タイミングはデバッガで見ると、
Set obj = new AssociatedArray
だ。まさに、オブジェクトが作られたタイミングだね。すばらしい。
0393デフォルトの名無しさんNGNG
>>391
連想配列もどきなら、Dictionaryオブジェクトでいいんじゃないのか?
0394デフォルトの名無しさんNGNG
あのヘルプは使えないね
0395デフォルトの名無しさんNGNG
質問があります。
A,Bのブックがあり、それぞれデータを共有しながら単独で動きます。
一つどうしても共有化できなかったデータがありBで必要になったのでAをマクロ無効にしながら開いて参照したかったのですが
無効にする方法を見出せずにいます。
Openで開いても、GetObjectでインスタンスに乗せてもA側のWorkbook_Openイベントがfireされます。

マクロを無効にして他ブックを開きたいのですがどの様にしたら良いでしょうか?
0396デフォルトの名無しさんNGNG
別の方法を考えましょう
0397395NGNG
>396
レスありがとう。
分かりました。Aの変更時と同時に他のリソースに書くことにします。
0398デフォルトの名無しさんNGNG
クラスモジュールで this ポインタってあるんでしょうか。
文字列演算が多いので
MyString.create(str).func1.func2.func3.to_string
とかやりたいんですが。
0399デフォルトの名無しさんNGNG
>>398
Me ?
0400デフォルトの名無しさんNGNG
マクロ初心者です。
質問させてください。
 A B C D E F
1. リストNo 数値1 数値2 数値3
2. 1 0326 3124 0001
3. 2 0327 3125 0002
4. 3 0328 3126 0003
5. 4 0329 3127 0004
6. 5 0330 3128 0005

上記のような表があるとして、セルに記入された数値と一致する
リストNoのはいったセルをアクティブにする方法を教えてください。
F1に"3"と入れるとA4がアクティブになるような。

0401398NGNG
>>399
Me ってうつと this ポインタになるのかと思った。
違うみたい。

...Me ってなんだ?
0402sn00pieNGNG
>>400
VBA はじめたばかりの sn00pie です。
シートは1枚と仮定。
ガンバレ。とりあえずリファレンス買え。

Sub SelectAllSameValues(value As String)
 Dim cell As Range
 Dim rangeString As String
 rangeString = ""
 For Each cell In ActiveSheet.UsedRange
  If cell.value = value Then
   rangeString = rangeString + cell.Address(False, False) + ","
  End If
 Next cell
 rangeString = left(rangeString, Len(rangeString) - 1)
 Range(rangeString).Select
End Sub

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
 If Target.Address(False, False) = "F1" Then
  SelectAllSameValues Target.value
 End If
End Sub
0403398NGNG
キーワード Me の使い方を教えてください。
クラスモジュールを追加して、
Option Explicit
Public Function returnMe() As Class1
 returnMe = Me
End Function
Public Sub printMsg()
 MsgBox "hell world"
End Sub
次に ThisWorkbook に
Sub testKeywordMe()
 Set obj = New Class1
 obj.returnMe.returnMe.returnMe.printMsg
End Sub
として実行できると思ったのに、できません。
ヘルプには Me が this である、という記述に見えるのに
どこが間違っているんでしょうか?
0404400NGNG
>>sn00pie さん
わぁ こんなに早くレスもらえるとはおもってませんでした。
さっそくためしてみます。
ありがとうございました。
0405398NGNG
Me を返す方法をずーと考え続けてました。
よーするに、Me は Function の戻り値として使えないみたい。
引数として他の Sub, Function に Me を渡すことはできるみたい。

もし、obj.func1.func2.func3をしたい場合は、
各メソッドでインスタンスを作り直す必要がある、と。

簡単なバッチ処理を行う分には Excel/VBA でいいけど、
大規模になるとつらそうだな。この言語。
ヘルプは見にくいし、エラーメッセージが婉曲っつーかなんつーか。
ちょっとしたこともトリッキーな手法にならざる得ない気が。

# 私は日曜プログラマですが、プロプログラマは大変だろうな。
0406デフォルトの名無しさんNGNG
度々ここでお世話になっているものです。

今回は、グラフを作成する際の参照元データの指定法です。

一般的には、Range等を用いて、セル上の数値を元にグラフを作成しますが、VBAのマクロ内で計算した数値を格納した配列を直接渡したいのです。

どうすればいいかわかりません。SourceやRangeの関連は全部調べましたし、持っている5冊の参考書内でもいろいろ探してみたのですが、一向に見つかりません。

おながいします。
0407デフォルトの名無しさんNGNG
>>403
Public Function returnMe() As Class1
 Set returnMe = Me
End Function
か?
0408398NGNG
>>407
そうかリファレンスの代入だったのか。
「実行時エラー '91': オブジェクト変数または With ブロック変数の設定がされていません。」
ってときは Set 抜けの可能性ありってことですか。
・・・なんてわかりにくいエラーメッセージなんだろう。

Option Explicit
Sub ExecuteDemo()
Dim myStr As MyStringClass
 Set myStr = MyString.create("1234567890")
 MsgBox myStr.leftString(8).rightString(4).getString ' ==> MsgBox "5678"
End Sub

あとはインスタンスを作るときに引数を指定して渡せれば
MyString って標準モジュール(function create のみのモジュール)も書かなくて
すむが、これで当初の目的は達成です。ありがとー!
0409406NGNG
>>406です。今日も1時間ぐらいいろいろと検索で探したのですが、
グラフのデータを配列で直接渡す方法が見つかりません。どなた
か名案をご存知でしたら、どうかよろしくお願いします。現時点
では、一時的にシート別位置にデータを吐き出して、それでグラ
フを作っています。どうしても配列から直接渡したいのです。よ
ろしくお願いします。
0410デフォルトの名無しさんNGNG
くだらない質問だけど
VBAもVBA.NETになると思う?
0411デフォルトの名無しさんNGNG
>>410 らしいね。 VBAのエンジンとVB.NETのエンジンは共有にするそうだ
0412398NGNG
>>409
なんでシートからグラフ作っちゃだめなんですか?
worksheet の visible で非表示でユーザに見えなくするとかは?
0413デフォルトの名無しさんNGNG
>>408
俺もあのエラーメッセージには泣いてる
0414406NGNG
>>412
解決できました。汚いコードですがこんな感じです。要するに、文字列をこんな具合に作ってあげて、投げてあげればできます。

Public Sub CommandButton2_Click()
Dim co As ChartObject
Dim Y As Variant

i = 1

Y = "={"

While i < 5
Y = Y & S(i) & ","
i = i + 1
Wend

Y = Y & S(5) & "}"

Set co = ActiveSheet.ChartObjects.Add(10, 10, 300, 200)
With co.Chart.SeriesCollection.NewSeries
.XValues = Worksheets("Sheet1").Range("A2:A6")
.Values = Y
End With

End Sub
0415391NGNG
今更ですが。

>>393
> 連想配列もどきなら、Dictionaryオブジェクトでいいんじゃないのか?

自作とどっちがいいか検討しました。自作の方がよさそうです。
(1) CreateObject ってラストに Nothing 代入しないとだめなのがめんどい。
(2) CreateObject だと継承できないのが痛いです。
どっちも Directory じゃなくて CreateObject のせいですが。
0416デフォルトの名無しさんNGNG
とても困っております。質問させてください・・・
はじめからできているグラフにデータを貼り付けてファイルを作成しているのですが、
if データ系列に近似曲線がなかったらthen
処理をしない
endif
という処理をしたいのです。
グラフ自体から”データ系列に近似曲線がなかったら”という風に値が
返ってくる方法はないでしょうか?
グラフの数が多すぎ&元データの場所もバラバラなので、グラフごとの元データを
チェックするより、グラフに線がなかったら?と認識したいのです。
または「グラフの元データの範囲」の値を取得する方法はないでしょうか?
よろしくお願いします。。。
0417デフォルトの名無しさんNGNG
>>416
Sheets("Sheet1").ChartObjects("グラフ 1").Chart.SeriesCollection(1).Trendlines.Count
でいけるようです。
0418416NGNG
>>417
こんなに早いレスありがとうございます!
さっそく試してみます。ありがとうございます!
0419416NGNG
今試してみたのですが、グラフに線があるときはいいのですが、線が無い
時にゼロの値が返ってきません。Trendlinesプロパティを取得できませんの
エラーが。。。今はカウントを変数に入れてゼロだったら?のif文に
しているのですが、これがいけないのでしょうか?もう全然わかりませぬ。
0420デフォルトの名無しさんNGNG
>>419
そうでしたか?一度近似曲線を作って消してからならOKのようです。
今ちょっと確かめてみます。
0421416NGNG
すみません。。
0422デフォルトの名無しさんNGNG
>>419
やってみました。近似曲線を作らなくても、系列番号をSeriesCollectionで
指定してやれば、Trendlines.Countはちゃんと0を返してくれました。

カウントを変数に入れてゼロだったら?の意味がよくわかりません。もう
少し詳しく教えていただけないでしょうか。
0423416NGNG
GG = ActiveChart.SeriesCollection(1).Trendlines.Count
If GG = 0 Then
GoTo n1
End If
↑こんな感じです。使い方が間違っているのでしょうか??

0424デフォルトの名無しさんNGNG
>>423
別に間違ってないですねえ。もしかしたら系列が一つもないグラフを参照する
事もあるのですか?
0425416NGNG
>>424
そうです、あります。。。場合によってはデータが空白の時もあるので、
そういう時はグラフには何も表示されないんです。
やっぱりグラフからっていうのは無理なんでしょうか?
0426デフォルトの名無しさんNGNG
>>425
ActiveChartがNothingの時はSeriesCollection以降を参照しないように
変更してみたら?
0427デフォルトの名無しさんNGNG
>>425
違った、SeriesCollection.Countが0でない時のみTrandlinesを参照するように
したらいいと思います。
0428デフォルトの名無しさんNGNG
こんな感じ。

If ChartObjects("グラフ 1").Chart.SeriesCollection.Count Then
Range("a1") = ChartObjects("グラフ 1").Chart.SeriesCollection(1).Trendlines.Count
End If
0429416NGNG
なるほど!ちょっとやってみます!
0430416NGNG
オブジェクトは、このプロパティまたはメソッドをサポートしていません
のエラーが出てきました。。。SeriesCollectionはオブジェクトを指定
しないと使えないものなのですか?
If ActiveChart.SeriesCollection.Trendlines.Count Then
だとこのエラーで、
If ActiveChart.SeriesCollection(1).Trendlines.Count Then
だと(1)の線がグラフにないので認識してくれません。
もう私のレベルでは対応できません。。。こんな私に親切に教えて頂けて
感謝感謝デス
0431デフォルトの名無しさんNGNG
>>430
もう少しですね。Trendlinesをいきなり参照してしまっているのでエラーに
なっているのだと思います。

1.SeriesCollection.Countの値をチェックする。
2.1.が0の時は何もしない。0以外の時に初めてTrendlines.Countを調べる。

のようにすればいいはずです。SeriesCollectionが0の時は、系列が一つも
ないわけですから、当然近似曲線もないはずですから。
0432デフォルトの名無しさんNGNG
>>430
If ActiveChart.SeriesCollection.Trendlines.Count Then
はエラーになります。
If ActiveChart.SeriesCollection.Count Then
でまずチェックして下さい。
0433416NGNG
>>431
ありがとうございます!今このように
GG = ActiveChart.SeriesCollection.Count
If GG = 1 Then
やってみました。成功したと思ったのですが、なぜか近似曲線の無いグラフ
にまで1が入ってきたので調べてみたところ、このグラフは元のデータを
データ範囲からでなく系列のXの値,Yの値に直接入れているようで、
これはデータが入っていなくても系列がある事になってしまうんでしょうか?
0434デフォルトの名無しさんNGNG
>>433
If ActiveChart.SeriesCollection.Count Then
GG = ActiveChart.Chart.SeriesCollection(1).Trendlines.Count
If GG Then
近似曲線のある時の処理
End If
End If
のようにしてみて下さい。
0435416NGNG
>>434
すみません。なんとお礼を言っていいか。。。
If ActiveChart.SeriesCollection.Count Then
GG = ActiveChart.SeriesCollection(1).Trendlines.Count
If GG = 1 Then
近似曲線のある時の処理
End If
End If
でやってみた所、GG = の所で引っかかりました。
SeriesCollection(1)が認識できないようです。
ここまで教えて頂いたのに申し訳ありません。。。
0436デフォルトの名無しさんNGNG
>>435
>>434に間違いがあり、
GG = ActiveChart.Chart.SeriesCollection(1).Trendlines.Count
ではなくて
GG = ActiveChart.SeriesCollection(1).Trendlines.Count
でした。
私の所ではこれでうまく動いているのですが・・・・・・
0437416NGNG
なんででしょう・・・グラフ右クリックの元のデータのところをデータ範囲からでなく
系列のXの値,Yの値に直接入れているのは関係ないでしょうか?
こんなことでお手間をとらせてごめんなさい。。。
0438デフォルトの名無しさんNGNG
>>437
ソースがRangeでも、配列定数でも関係はないと思います。
どこが違うのかなあ?グラフは確実にActivateされてますよね?
0439416NGNG
一応ActiveChart.ChartArea.Selectにしてます。
データがちゃんとあるところは大丈夫なのですが、
ない所になるとひっかかってしまうんです。。。
0440416NGNG
こんなできる人が近くにいてくれればいいのになぁ。。。
あぁぁもうダメです。。。
0441デフォルトの名無しさんNGNG
はじめまして、こんばんは。
唐突ですが、EXCELで3次元のモデルって、実現可能でしょうか?
ちなみにモデルの用途は熱解析です。(汎用ソフトがあるのは知ってます
が、事情がありまして。。。)
ご存知のかた、詳しい方、お願いします。
0442デフォルトの名無しさんNGNG
>>440
データがない時に引っ掛からないように、SeriesCollection.Countが0でない
事をチェックしているんですがねえ。うーんおかしいなあ・・・・
0443ききNGNG
ああ
0444416NGNG
>>442
ですよねぇ。。SeriesCollection.Countの値をSeriesCollection()の
()の中の引数にしてみたのですが、これもダメでした。SeriesCollection.Countは
データがあっても無くても1が入ってしまいます。でもTrendlines.Count
を実行しようとするとエラーに。。。ほかの方法を考えたほうがいいでしょうか?
長々考えていただいて申し訳ありません。
0445デフォルトの名無しさんNGNG
質問させてもらいます。
ある文字列がアルファベットや数字、つまり"-"や"$"などの
記号を除いた半角英数字で構成されているかどうかを
確認するにはどうしたらよいのでしょうか?
0446sn00pieNGNG
>>445
文字列を一文字づつ調べれば?
0447デフォルトの名無しさんNGNG
お前のような脳機能低下野郎は初めてだよ。
秀丸で確認すりゃいいだろ!ボケ!

反論は認めんからな(秀丸で瞬時に確認出来るだろ。10Mのテキスト文字列でも
3分位で出来るぞ、バカ)。
0448デフォルトの名無しさん NGNG
>>446
回答ありがとうございます。
やっぱりそうするしかないんですね。
メールアカウントなどで記号が使えないものが多いから
既にそういうのを摘出する機能があると考えていたんですが。
まぁ、大した処理じゃないですけどね。

>>447
"Excel"でってことなんですけど。。。
質問の仕方が悪くてどうもすいませんでした。
0449IP記録実験NGNG
IP記録実験
http://qb.2ch.net/test/read.cgi/accuse/1042013605/

1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 投稿日:03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。

27 名前:心得をよく読みましょう 投稿日:03/01/08 17:20 ID:yL/kYdMc
SETTING.TXT管轄でないということは全鯖導入を視野に、か?

38 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:22 ID:rLfxQ17l
>>27
鋭いです。

73 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:27 ID:rLfxQ17l
>ところで、IPが抜かれて何か今までと変わることってあるのでしょうか?
・今までより、サーバが重くなる。
・裁判所や警察からの照会があった場合にはIPを提出することがある。
0450デフォルトの名無しさんNGNG
Excel 2001:macのVBで2バイトの文字コードから文字を得るにはどうすれば
よいのでしょうか?
シート上で
=char(9008)と入力するとJISコード表から"0"が表示されます。
VBAでMsgBox chr(9008)とすると、"0"ではなくコードと全く関係の無い
文字列が表示されます。
なにか方法はありますでしょうか?
よろしくお願いします。
0451デフォルトの名無しさんNGNG
IPだけ?
0452デフォルトの名無しさんNGNG
>>1
全レス?
0453デフォルトの名無しさんNGNG
>>445

正規表現使うとか、、
http://www.microsoft.com/japan/msdn/columns/scripting/scripting051099.asp

他にもFreeで正規表現を実現するコンポーネントもあるし
0454デフォルトの名無しさんNGNG
串対策は?
�dカツには何ソースですか?
何ソースですか?
0455デフォルトの名無しさんNGNG
内部告発者=ディープスロートと言う
0456デフォルトの名無しさんNGNG
>323
立たなくなるのは大変危険かと思われ。
0457デフォルトの名無しさんNGNG
実は俺が本物のひろゆき
0458IP記録実験NGNG
IP記録実験
http://qb.2ch.net/test/read.cgi/accuse/1042013605/

1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 投稿日:03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。

27 名前:心得をよく読みましょう 投稿日:03/01/08 17:20 ID:yL/kYdMc
SETTING.TXT管轄でないということは全鯖導入を視野に、か?

38 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:22 ID:rLfxQ17l
>>27
鋭いです。

73 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:27 ID:rLfxQ17l
>ところで、IPが抜かれて何か今までと変わることってあるのでしょうか?
・今までより、サーバが重くなる。
・裁判所や警察からの照会があった場合にはIPを提出することがある。
0459デフォルトの名無しさんNGNG
↓(´`c_,'` )プッ
0460デフォルトの名無しさんNGNG
大阪って何だよ
0461デフォルトの名無しさんNGNG
>>117
厨にはいいブレーキだろ
0462デフォルトの名無しさんNGNG
.Chart.SeriesCollection().NewSeries.Values = Y
で元データを指定したいのですが、最大16個の数値しか指定できないので
困っています。これって拡張できないのでしょうか?拡張できないなら一
度セルに吐き出して、といったかんじでグラフを作成することになってし
まいます。これは避けたいのです。

このようにしてX軸Y軸のデータを指定しています。Xは16個以上でも指定
できるのですが・・・・・名案がありましたらお願いします。

Set co = ActiveSheet.ChartObjects.Add(10, 10, 300, 200)

With co
.Chart.PlotBy = xlRows
.Chart.SeriesCollection().NewSeries.XValues = X
.Chart.SeriesCollection().NewSeries.Values = Y
.Chart.ChartType = xlLineMarkers
.Chart.SeriesCollection(1).Delete
End With
0463デフォルトの名無しさんNGNG
ぴろゆき今日は早起きだな。
0464デフォルトの名無しさんNGNG
======2==C==H======================================================

         2ちゃんねるのお勧めな話題と
     ネットでの面白い出来事を配送したいと思ってます。。。

===============================読者数: 138720人 発行日:2003/1/9

年末年始ボケがそろそろ収まり始めた今日このごろのひろゆきです。

そんなわけで、年末に予告したIP記録ですが実験を開始しています。

「2ちゃんねる20030107」
こんな感じで各掲示板の最下部に日付が入ってるんですが、
20030107以降になってるところはログ記録実験中ですー。

んじゃ!

────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────
0465デフォルトの名無しさんNGNG
1chみたいにログ流出だけは避けてくれればとりあえずはいいかなと。
しょうがないでしょう、このご時世。
0466sn00pieNGNG
>>453
>正規表現使うとか、、
>http://www.microsoft.com/japan/msdn/columns/scripting/scripting051099.asp

これなんですが、 Excel VBA で使えるんでしょうか?
このインターフェースなら是非使ってみたいんですけど・・。

>>445
もし正規表現ライブラリを使えるのならば、
ttp://www.din.or.jp/~ohzaki/perl.htm#Mail
これが使えます。

ただし、 Perl の正規表現ですので VBA の正規表現に書き換える必要が
あるはず。展開後の長ったらしい正規表現を再利用しようとせずに
自分でコードを組んで正規表現を生成しなおしたほうがいいよ。
0467デフォルトの名無しさんNGNG
>>これなんですが、 Excel VBA で使えるんでしょうか?

Excel2000でだけど、Visual Basic Editorを立ち上げて、ツール->参照設定でMicrosoft VBScript Regular Expressions
を追加すると使えるようです。
0468デフォルトの名無しさんNGNG
>>521
素で選びましたが
な に
 
か?
0469デフォルトの名無しさんNGNG
内容証明が来たら、名誉毀損の書き込みがあったことを知りうるでしょ、
その時点で削除しなきゃだめよ、ってことだね
>>25
0470デフォルトの名無しさんNGNG
内容証明が来たら、名誉毀損の書き込みがあったことを知りうるでしょ、
その時点で削除しなきゃだめよ、ってことだね
>>25
0471デフォルトの名無しさんNGNG
内容証明が来たら、名誉毀損の書き込みがあったことを知りうるでしょ、
その時点で削除しなきゃだめよ、ってことだね
>>25
0472デフォルトの名無しさんNGNG
>>26 今回のケースでは、
名誉毀損の書きこみがあったと認識し、または認識しえたとき。= 内容証明が届いた時

でしょ? いいたい事があるならはっきりと仰って下さい。
0473デフォルトの名無しさんNGNG
ヤブ医者をヤブ医者と言って何が悪いんだか。
少なくともその人はヤブ医者に感じたんだろうが。
それを開き直る根性が全く解せない。
0474デフォルトの名無しさんNGNG
大型連休に固定が消えるのはいつものこと(ひろゆき含む)
0475デフォルトの名無しさんNGNG
ITバブルの中で様々な幻想が語られた。

リアル経済ならぬバーチャル経済しかり。
ITによる失業者の吸収しかり。
「これからは2ちゃんねるの時代だ」のごとき匿名幻想しかり。

IT社会はリアルワールドにおける
信頼と責任抜きにはありえないというだけの話だ。

http://www.miyadai.com/message/?msg_date=20020713

0476デフォルトの名無しさんNGNG
>アクセスログってなに?

人を馬鹿にするな!
0477デフォルトの名無しさんNGNG
旺文社
国語辞典

若干(じゃっかん)
名詞・副詞
いくらか。少し。少々。
0478デフォルトの名無しさんNGNG


歪曲北朝鮮放送局が恐喝食中毒すし屋を第3位に。




 
0479デフォルトの名無しさんNGNG
>>356
( ´_ゝ`)フーン
0480デフォルトの名無しさんNGNG
スレタイの日本語、微妙におかしいね。
0481デフォルトの名無しさんNGNG
削除しなかったことが問題であって、IP取得は全くの見当違いだと思うんだが
それよかズボラな削除体制どーにかしろって感じだな

どさくさに紛れて都合の良い法律案を盛りこむ議会みたい
管理批判の多い板から記録してるっつーのもなんだかなあ
0482デフォルトの名無しさんNGNG
釣りじゃないのなら実に現実味のない意見だ
0483デフォルトの名無しさんNGNG
新しいスレ立てて議論してくれ。
スレタイと内容合わせようや。
0484sn00pieNGNG
>>467
> Excel2000でだけど、Visual Basic Editorを立ち上げて、ツール->参照設定でMicrosoft VBScript Regular Expressions
を追加すると使えるようです。

あー。MS記事の中の参照がどうのこうのっていうのはそういう意味でしたか。
さっそく VBA で楽しい正規表現ライフを暮らそうと思います。ありがとー。
0485デフォルトの名無しさんNGNG
IPっていうのはプロトコルの名称であって、ちゅあんとIPアドレスと
表記しなさいってのは聞き飽きたよ
0486デフォルトの名無しさんNGNG
249 名前:ひろゆき ◆3SHRUNYAXA [] 投稿日:03/01/08 17:52 ID:rLfxQ17l
   >荒らしとか犯罪のためなの?
   そす。

246 名前:心得をよく読みましょう[] 投稿日:03/01/08 17:52 ID:BH998yxV
   >ひろゆき
   俺のお気に入りのスレとか荒されてるんだがそういうのにも有効?

257 名前:ひろゆき ◆3SHRUNYAXA [] 投稿日:03/01/08 17:53 ID:rLfxQ17l
      いずれは。


 
0487デフォルトの名無しさんNGNG
======2==C==H======================================================

         2ちゃんねるのお勧めな話題と
     ネットでの面白い出来事を配送したいと思ってます。。。

===============================読者数: 139038人 発行日:2003/1/10

なにやら、連日メルマガだしてるひろゆきです。

そんなわけで、ログ記録実験ですが、いちいちサーバ指定するのが面倒なので、
全部のサーバに入れてみました。

重くなって落ちたりしてもご愛嬌ってことで。。。

んじゃ!

────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────
0488デフォルトの名無しさんNGNG
IDやめて、ここにIPを表示してしまえ。
0489デフォルトの名無しさんNGNG
どこぞの宗教団体を批判するスレ・レス出現
  ↓
どこぞの団体が、管理人にスレ・レス作成IP教えろ
  ↓
管理人がIP教える
  │
  ├─────┐
  ↓普通     ↓異常
 裁判     VXガス

こうなるとオウムに個人情報を知らせ 大量殺人にまで発展した
TBSと同じになるな。 カルトは裁判を起こすことが目的ではなく
都合の悪い相手を特定して殺害することが
IPを得る真の狙いだから真実の書き込みができなくなる。

平和な日本の昼下がり、
創価学会脱税疑惑を追及した市議会議員が自宅の団地で家事をしている。
すると突然、自宅の窓から化け物のような歪んだ力で
あっという間に空へ丸投げされて落下死する。
団地の部屋はコンビニへ買い物に行っているかのように
台所も洗濯物も何もかもがそのままの状態だ。
地元警察は創価学会と数日前から綿密な口裏合わせがあったかのように
他殺を自殺と決め付けてろくな捜査も現場検証もせず引き上げる。
http://www.sokamondai.to/

ちなみにフランス内務省は最高危険度カルト教団として
日本の創価学会を公式に認定した。
フランス政府公認のカルト教団と正義のために
たった一人実名で全面対決した市議に黙祷( ‐人‐ )
2ちゃねらーはプロバイダー責任法案を
国会で通過する前に反対しておけばよかったのに。
私は反対したが力が足りなかった。
0490デフォルトの名無しさんNGNG
かわってないよ。なにいってんだよ。
0491デフォルトの名無しさんNGNG
前スレで始めての1001Getを狙ったんだが、思ったほど終盤の勢いがなかったな
0492デフォルトの名無しさんNGNG
はじめまして 質問があります
テキストファイルから読み込んで下記のような表を作らなければならないのです
       文学部 工学部 理学部 法学部 医学部 合計
1.男性
2.女性
  無記入

コードは 文学部:1 工学部:2 理学部:3 法学部:4 医学部:5 
      男性:1 女性:2 無記入:空白 です。
これの学部ごとの性別の人数と合計をだすプログラムの例を教えて欲しいです
文学部、男性等の文字は初めから入力されているので数字だけが出るプログラムを
希望します。
テキストには一行目が学部、二行目が性別のコードになっています
例 11
21 
52
4
11
    ・
   ・
よろしくお願いします
0493492NGNG
うわっずれた
最後の例はコードの並び方で
11
21
52
4
11
・
・
こういう風に並んでいるということです
0494デフォルトの名無しさんNGNG
ひろゆきがこれなくなるじゃないか!
俺はひろゆきにレスされたいんだよ!
0495デフォルトの名無しさんNGNG
国内サッカー板 また落ちてます?
0496デフォルトの名無しさんNGNG
殺人予告スレ発生。

【予告】小学生の登校を狙って・・・
http://live2.2ch.net/test/read.cgi/news/1042035002/

悪戯であることを祈る。
0497ケンNGNG
エクセルに取り込んだ画像の色のデータを取得する方法が、VBAに
あるのであれば、教えてください。
たとえば、取り込んだ画像の、上から20ポイント左から20ポイント
の位置にある、ドットの色が黒であれば、1を返してくるような
プロパティーがあれば、教えてほしいのですが・・・
0498デフォルトの名無しさんNGNG
まだ心臓がドキドキしてるぞ馬鹿
0499デフォルトの名無しさんNGNG
>>497
Win32APIのGetPixel
0500492NGNG
お願いします・・・
誰か助けてください・・
0501デフォルトの名無しさんNGNG
>500
漏れだったらこんな事だったらVBA使わない。
テキストを貼り付けて区切り位置ウィザードで別フィールドに整形してから
DSUM関数で集計する。
0502デフォルトの名無しさんNGNG
>501
DCOUNTだわ、スマソ。
0503492NGNG
>>501
レスありがとうございます
でもこの課題はVBAプログラムで書いてこいと言われたんです
Do..Loopステートメントを使うみたいなんですが・・
重ね重ねすいません
0504デフォルトの名無しさんNGNG
払チ托イ
0505デフォルトの名無しさんNGNG
ということはなにか固定のほとんどは地方出身だということか。
0506デフォルトの名無しさんNGNG
>>503
ほい出来たぞ。久しぶりにBASICなんか組んだよ。

Open "InputData.txt" For Input As #1
Do
If EOF(1) Then Exit Do
Input #1, i$
Row = Mid$("BCDEFG", Val(Left$(i$, 1)), 1)
If Len(i$) = 1 Then
Column = "4"
Else
Column = Format$(Val(Right$(i$, 1)) + 1)
End If
Range(Row + Column).Value = Range(Row + Column).Value + 1
Range("G" + Column).Value = Range("G" + Column).Value + 1
Loop
Close #1
0507デフォルトの名無しさんNGNG
>>503
そうそう、2chに書き込んであるデータは行末尾に空白が一個入るから、
データをコピペする場合空白は削除しておいてね。
0508492NGNG
>>506
ありがとうございます!!
これで留年免れた・・
0509デフォルトの名無しさんNGNG
>>492
努力しろや。留年したほうがまし。
個人的意見ですが。
0510デフォルトの名無しさん NGNG
>>492
うわー。こんな問題も分からんのか......
退学すれば?諸悪の根源だよ。
0511デフォルトの名無しさんNGNG
>>506
>If EOF(1) Then Exit Do
のEOFってどういうことなんですか?
どういうときに使うんですか?

0512デフォルトの名無しさんNGNG
ファイルの終わりがきたらってことだ
0513デフォルトの名無しさんNGNG
>>511
入力するデータがなくなったら、DO...LOOPを抜けるために入れてあります。
0514511NGNG
>>513
ありがとうございます。
0515デフォルトの名無しさんNGNG
ちなみに
DO Until EOF(1)
....
LOOP
とすればIf文を一個減らせます。
0516sn00pieNGNG
>>506
なんで Format$(Val(Str(XXX))) を使うんだろう。
Format って日付の形式指定ですよね?
ならば Str(XXX) のままでいいと思う。

# VBA って sprintf 系の関数がなくてめんどいと思う今日このごろ
0517デフォルトの名無しさんNGNG
>>516
Strを使うと、先頭に不要なスペースが一つ入ってしまうので都合悪いのです。
0518???NGNG
たまに、「SASなんぞ知らないぞ。そんな糞言語だ。」っていう人がいますが、
なぜ、SAS言語がくそと呼ばれるのですか?
結構金融機関で使用しているところがあるのですが、
ほかの言語とどう違うのですか?
具体的に教えてください。マジで。
0519デフォルトの名無しさんNGNG
★http://profiles.yahoo.co.jp/moekosanjp★
★私とチャットしませんか?★
0520sn00pieNGNG
>>517
空白除去でしたら Trim がありますよん。
0521sn00pieNGNG
Property Get item(key as String, value as Variant)
Property Let item(key as String)
Property Set item(key as String)
を同一クラスに実装しようとしたらできなかった。
できないものらしい。気づくのに1時間近くかかった。はぁ〜。(タメイキ
0522デフォルトの名無しさんNGNG
あ、オーバーロードできないっけ。
デフォルト引数はなかった?
0523sn00pieNGNG
>>522
僕のコメントについての発言ですか?
デフォルト引数があるか・・・?どういう意味でしょうか?
0524デフォルトの名無しさんNGNG
800!!
0525デフォルトの名無しさんNGNG
結局はまたループ・・・
0526sn00pieNGNG
ごめん。 >>521 についてですけど、今やったらできた。
さっきはなんでできなかったんだ。
.xls ファイルを再読み込みで変わるのか?ワカンネ
get, set, let 全部できました。ガセ流してごめん。

Sub PropertyDemo()
Dim obj As New Class1
Dim value As Variant
obj.item("abc") = obj
Set obj.item("abc") = obj
value = obj.item("abc")
End Sub
0527デフォルトの名無しさんNGNG
大分かかる
0528Win2k SP3, Excel2000NGNG
VBEで検索する際に、検索文字列に漢字を入力しようとすると、変換が確定した時点
で文字化けしてしまいます。これってMSのバグ?
0529528NGNG
IMEはMS-IME2000です。
0530デフォルトの名無しさんNGNG
>>528
これでしょうか?
ttp://support.microsoft.com/default.aspx?scid=kb;ja;JP416637
0531山崎渉NGNG
(^^)
0532デフォルトの名無しさんNGNG
掲示板の書き込みを鵜呑みにするやつはもっと悲惨だよ
0533528NGNG
>>530
ここにも貼って頂いて、、、どうもありがとうございます。助かりました。
0534山崎渉NGNG
(^^)
0535デフォルトの名無しさんNGNG
 あらかじめ指定しておいたテキストファイルに、
表示されているエクセルデータを書きたして行くにはどうしたらいいのでしょうか・・
よろしければどなたか・・
0536sn00pieNGNG
>>535
指定するテキストファイルの中のデータを読み込み専用で開いて、データを読み込んで、閉じて、
書き込み専用で開いて、データを書きこんで、エクセルデータを書き込んで、閉じる。
最短とか、最良を選ばなくていいなら、これで十分だよね。

データの読み方はこのスレで紹介済みだよ。書き方も似たようなものだと思う。
何で悩んでるの?
0537ゆみこNGNG
VBAのことでわからないことがあり書き込みします。困ってる内容はエクセルで記録したマクロ↓に ファイル選択などのループ処理を加えたいのですが どうもよくわかりません どうかあたしを助けると思ってお願いしますm(_ _)m
Sub Macro1()
'
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;D:\0115backup!\+00\u+00\-27u+00.txt", Destination:=Range("E2"))
.Name = "-27u+00"
 .FieldNames = True         .RowNumbers = False
 .FillAdjacentFormulas = False   .PreserveFormatting = True
 .RefreshOnFileOpen = False     .RefreshStyle = xlInsertDeleteCells
 .SavePassword = False        .SaveData = True
 .AdjustColumnWidth = True      .RefreshPeriod = 0
 .TextFilePromptOnRefresh = False   .TextFilePlatform = 932
 .TextFileStartRow = 1         .TextFileParseType = xlFixedWidth
 .TextFileTextQualifier = xlTextQualifierDoubleQuote  .TextFileConsecutiveDelimiter = False
 .TextFileTabDelimiter = True     .TextFileSemicolonDelimiter = False
 .TextFileCommaDelimiter = False    .TextFileSpaceDelimiter = False
 .TextFileColumnDataTypes = Array(9, 1)  .TextFileFixedColumnWidths = Array(12)
 .TextFileTrailingMinusNumbers = True   .Refresh BackgroundQuery:=False
End With
End Sub
↑このマクロの中で"-27u+00.txt"のところの-27を(-30〜+30)に、E2を(B2〜BJ2)に選択ヶ所の番号をループ的に順番に選択させて,処理をループ処理にしたいのですが。。。 本当によろしくお願いしますm(_ _)m
0538さちえNGNG
ついでといってはナンですが、わたしにも教えてくださぁい

Excel2000で2つのブックを開いていて、どっちにも複数のシートがあって、
シート名は重複してません。で、今注目したいブックが下にきているとき

Function GetSendStatus() As Integer
GetSendStatus = Worksheets(sheet_setting).Range("B43").Value
End Function

みたいなコードのところで「エラー9・インデックスが有効範囲にありません」が
発生します。
今操作中のブックにsheet_settingというシートがないゆえだと思うんですが
ブック名まで指定しないとダメなんでしょうか?
0539デフォルトの名無しさんNGNG
>537
もーちっと見やすく書けや。
0540U ◆CZtFsGiu0c NGNG
>>538
そのFunctionはどこに記述されているんですか?
対象のブック内に記述されているのであればThisWorkbookでそのブックを
指定できますが、そうでないとすると、対象となるブックを特定する情報
が必要になるでしょう。
0541さちえNGNG
>>540

 ☆ゴン
|/
|( `Д´)ノ アイター!
|<(  )へ
|  >

そうだ、こんなときにこそ ThisWorkbook. を使えばよかったんですね!
バカだ・・・わたし・・・

いやいや、ありがとうございました!
0542デフォルトの名無しさんNGNG
すみません。
PostgresのデータをExcelに落としたいのですが、
どうすればよいか、書いてある本をご存知の方
いないでしょうか。
ご存知でしたら教えてください。
お願いします。
0543デフォルトの名無しさんNGNG
>>542
MySqlに汁!
0544デフォルトの名無しさんNGNG
>>543
MySQLならできるのでしょうか。
0545デフォルトの名無しさんNGNG
>542
適当にサンプル。Postgres使っていないから分からんが、こんなのでいけるんじゃないのか?
ODBCは配布してるサイトから拾ってくる事。

Private Sub Connection_Test()

Dim cnList As New ADODB.Connection
Dim cmList As New ADODB.Command
Dim rsList As New ADODB.Recordset
Dim sConnectionString As String

sConnectionString = "driver={PostgreSQL};server=(local);database=testdata;uid=saUser;pwd=;"
cnList.ConnectionString = sConnectionString
cnList.Open

cmList.ActiveConnection = cnList.ConnectionString
cmList.CommandText = "SELECT * FROM tblSample ORDER BY ID"
Set rsList = cmList.Execute()
Range("A2").CopyFromRecordset rsList

rsList.close
cmList.close
cnList.close

End Sub
0546542NGNG
>>545
詳細なコードまでありがとうございます。
なんだかいけそうです。
昨日までの鬱な気持ちがいっぺんで晴れました。
0547デフォルトの名無しさんNGNG
質問です。あるシートで、以下の関数を実行します。

'CommandButton1〜5を作成する関数
Public Sub t()
  Dim i As Integer

  ActiveSheet.OLEObjects.Delete

  For i = 1 To 5
    Call ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1")
  Next i
End Sub

するとCommandButton1〜5が生成されます。それからもう一度実行すると、
CommandButton1,6,2,3,4が生成され、その次はCommandButton1,5,6,2,3が生成されます。
なぜこのような結果になるのか知りませんか?
想像では、オブジェクトの破棄している最中に生成しようとしたからだと思うんですが・・・
意図したとおりに生成される方法を教えてください、おながいします・・・
0548デフォルトの名無しさんNGNG
ForNextでウエイト入れてみてはどうか
0549デフォルトの名無しさんNGNG
エクセルって計算ソフトなのに、高精度の変数使えないVBAでマクロ
書くってのはどうかしてるな。
0550自称「脳内SE」NGNG
>549
それでC++ソースも生成してますが、何か?
0551デフォルトの名無しさんNGNG
とあるCADの簡易機能を移植しようとしてVBAを使用。
データベースに基づいてEXCEL上で数千本のLine描画は
厳しいんでしょうか?凄く遅くなりました。
0552sn00pieNGNG
>>549
高精度の変数使わない処理ならば良い。
VBA でひとつのテンプレシートから50枚のシートを自動生成しました。
必要なら高精度ライブラリ作れw

ネタニマジレス
0553デフォルトの名無しさんNGNG
マタニネジレス
0554デフォルトの名無しさんNGNG
高精度の変数ってなんのこっちゃいな
0555世直し一揆NGNG
<血液型A型の一般的な特徴>(見せかけの優しさ・もっともらしさ(偽善)に騙され
るな!)
●とにかく気が小さい(神経質、臆病、二言目には「世間」、了見が狭い)
●他人に異常に干渉する(しかも好戦的・ファイト満々でキモイ、自己中心)
●自尊心が異常に強く、自分が馬鹿にされると怒るくせに平気で他人を馬鹿にしようとす
る(ただし、相手を表面的・形式的にしか判断できず(早合点・誤解の名人)、実際には
たいてい、内面的・実質的に負けている)
●本音は、ものすごく幼稚で倫理意識が異常に低い(人にばれさえしなければOK)
●「常識、常識」と口うるさいが、実はA型の常識はピントがズレまくっている(日本
の常識は世界の非常識)
●権力、強者(警察、暴走族…etc)に弱く、弱者には威張り散らす(強い者に弱く
、弱い者には強い)
●あら探しだけは名人級(例え10の長所があってもほめることをせず、たった1つの短所を見つけてはけなす)
●基本的に悲観主義でマイナス思考に支配されているため性格がうっとうしい(根暗)
●一人では何もできない(群れでしか行動できないヘタレ)
●少数派の異質、異文化を排斥する(差別主義者、狭量)
●集団によるいじめのパイオニア&天才(陰湿&陰険)
●悪口、陰口が大好き(A型が3人寄れば他人の悪口、裏表が激しい)
●他人からどう見られているか、人の目を異常に気にする(「世間体命」、「〜みたい
」とよく言う)
●自分の感情をうまく表現できず、コミュニケーション能力に乏しい(同じことを何度
も言ってキモイ)
●表面上意気投合しているようでも、腹は各自バラバラで融通が利かず、頑固(本当は
個性・アク強い)
●人を信じられず、疑い深い(自分自身裏表が激しいため、他人に対してもそう思う)
●自ら好んでストイックな生活をし、ストレスを溜めておきながら、他人に猛烈に嫉妬
する(不合理な馬鹿)
●執念深く、粘着でしつこい(「一生恨みます」タイプ)
●自分に甘く他人に厳しい(自分のことは棚に上げてまず他人を責める。しかも冷酷)
●男は、女々しいあるいは女の腐ったみたいな考えのやつが多い(例:「俺のほうが男
前やのに、なんでや!(あいつの足を引っ張ってやる!!)」)
0556山崎渉NGNG
(^^)
0557デフォルトの名無しさんNGNG
質問です。以下のコードをサイトから拾って来まして、
UserForm1にCommandButtonを5個作ってmacro1から呼び出す様にしたかったんですが
実行時エラー'424': オブジェクトが必要です。
と出ます。分かる方がいらっしゃいましたらアドバイスお願いします。

'UserForm1モジュール
Option Explicit
Option Base 1

Dim myClass1(5) As New Class1

Private Sub UserForm_Initialize()

  Dim myCmdBtns As New Collection
  Dim i As Integer
  With myCmdBtns
    .Add Item:=CommandButton1
    .Add Item:=CommandButton2
    .Add Item:=CommandButton3
    .Add Item:=CommandButton4
    .Add Item:=CommandButton5
  End With

  For i = 1 To 5
    Set myClass1(i) = New Class1
    With myClass1(i)
      .Cmd = myCmdBtns(i)
      .Index = i
    End With
  Next
End Sub
0558デフォルトの名無しさんNGNG
続きです。上で言い忘れてましたがClass1モジュールも作って以下を書き込んでます。

'Class1モジュール
Option Explicit

Private WithEvents myCmd As MSForms.CommandButton
Private m_intIndex As Integer

Public Property Get Cmd() As MSForms.CommandButton
  Set Cmd = myCmd
End Property
Public Property Let Cmd(ByVal cmdNewValue As MSForms.CommandButton)
  Set myCmd = cmdNewValue
End Property

Public Property Get Index() As Integer
  Index = m_intIndex
End Property
Public Property Let Index(ByVal intNewValue As Integer)
  m_intIndex = intNewValue
End Property

Private Sub myCmd_Click()
  MsgBox "クリックしたボタンはCommandButton" & m_intIndex
End Sub

Sub macro1()
  Show.UserForm1
End Sub
0559デフォルトの名無しさんNGNG
失礼。あげさせて頂きます。
0560デフォルトの名無しさんNGNG
いやだー、スカート捲らないでよー、サイテーー
0561デフォルトの名無しさんNGNG
>>557-558
Excel2002で動かしたらちゃんと動きましたよ。
0562デフォルトの名無しさんNGNG
>>561
ご回答、ありがとうございます。
動きますか・・・私のは何故動かないのだろう・・・。
Excel2000でも動きますよね?
0563デフォルトの名無しさんNGNG
>>562
した事は、macro1をSheet1に置き、UserForm1にコマンドボタンを5つ作成し、
UserForm1モジュールをUserForm1のマクロに置き、クラスモジュールを
作成してClass1をコピペ、macro1を実行しただけです。
0564デフォルトの名無しさんNGNG
>>563
Sheet1と標準モジュールの違いはありますが、あとは同じ様にやっているんですけどね。
(試しにSheet1にmacro1を置いて実行しても、結果変わらずエラーでした)

動く事だけ分かっただけでも大きな収穫です。
もう一度やり直してみたりExcel2002上で試したりしてみます。

ありがとうございました。
0565デフォルトの名無しさんNGNG
手元にExcel2000置いてないので試せないんですよ。
2000と2002で何か違うのかな?
0566557NGNG
>>565
違うのかもしれませんね。
明日か明後日Excel2002を使う機会がありますので
試してみます。
0567デフォルトの名無しさんNGNG
コマンドボタンやコンボボックスを、プログラムで自動作成する
やり方ってありますか?例えば、なにかのアクションを起こした
ときに、自動で任意の大きさ、場所へコマンドボタン等が自動で
シート内へ貼り付けれるようなカンジで。
0568デフォルトの名無しさんNGNG
あらかじめ作っておいて必要に応じて表示したり隠したりリサイズしたり
って方法ならありかと
0569デフォルトの名無しさんNGNG
http://homepage3.nifty.com/digikei/ten.html
(*~ー゜)ノ ・・・・・心温まるの〜
0570557NGNG
>>565
Excel2002でうまく動く事を確認しました。
というか試している過程で気づいたのですが、単なるコピペミスの可能性が大で
Excel2000でも動くような気がしました。どうもありがとうございました。
0571デフォルトの名無しさんNGNG
>>570
動いてよかったですね。
Excel2000でもこのプログラムを見る限りは動くような気がします。
0572557NGNG
>>571
ありがとうございます。
これ(オブジェクトの擬似配列化)を見つけた時は目をキラキラさせて喜んだもんで
早速月曜日に会社で試したいと思います。
0573デフォルトの名無しさんNGNG
シートの文字列をハイパーリンク化する命令はどう記述すればいいの?
0574デフォルトの名無しさんNGNG
↑
シート ×
セル内の ○
でした。
0575デフォルトの名無しさんNGNG
>>573
「マクロの記録」をすれば一発で分かるけど

Range("A1").Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="http://2ch.net/"
0576デフォルトの名無しさんNGNG
>>575
あ!できた。
どうもです〜。
0577デフォルトの名無しさんNGNG
誰か272にいちようツッコミを入れてあげてください
0578テストで出た異常の話NGNG
セルの計算式の話なんだが、ユーザ定義ワークシート関数(VBA)の中で
Range.Find()が動かない。NT4のOfficeは97。
・・・・・2000でXPだと動くな。ただのバグか。

あと、VBAではないんだが=COUNTIF(A1:A500,"<>0") としていると、
途中のセルをClearContentsしても数が変わらない・・・
(※delキーでクリアしても確認できる)
2000+XPでも再現。<>は駄目なのか?
初回とかは成功するから性質が悪い。
=COUNTIF(A1:A500,">0")+COUNTIF(A1:A500,"<0")
に置き換えることにしたが、顧客側担当者と二人で頭抱えたよ・・・
数十もあるブックで、どれくらい気付かずに使ってるか知れたものでは
ないから。
0579デフォルトの名無しさんNGNG
すいません
どなたか教えてください

EXCELVBAで例えばユーザが引いた罫線が
メニューのセルの書式設定からひかれたものか、
罫線パレットからひかれたものか
判断するようなことってできませんか?

要はユーザの操作がしりたいんですが
できませんかね
0580デフォルトの名無しさんNGNG
今、自分が開いているエクセルのファイル名の取得って
マクロでどうやるんですか?
0581デフォルトの名無しさんNGNG
>>580
ThisWorkbook.Path
ThisWorkbook.Name
0582デフォルトの名無しさんNGNG
>>581
ありがとう!助かりました。感謝
0583デフォルトの名無しさんNGNG
質問です。VBAでXMLファイルを読み込みたいのですが、DOMとかって使えるのでしょうか?
詳しく書いてあるサイトか本があったら教えてもらえないでしょうか?
よろしくお願いします。
0584デフォルトの名無しさんNGNG
>>583
ttp://www.microsoft.com/japan/msdn/xml/downloads/msxml4.asp
ttp://www.microsoft.com/japan/msdn/howto/howtoXML.asp
とか?
0585正規分布NGNG
2変量標準正規分布の積分をマクロでするにはどうしたらいいのでしょうか?

たとえば、[-1,2]×[3,4]の場合を教えてください。
0586デフォルトの名無しさんNGNG
質問です。
たとえば、列A1からA10まで値が入ってるとします。
そして、B1からB10にはA1からA10までの値を参照してるとします。
そこで、A11に値が新たに追加された場合、B11にも自動的にA11の値が
入るようにするには、どう書けばよろしいですか?
0587デフォルトの名無しさんNGNG
>>586
横着しない
0588デフォルトの名無しさんNGNG
>>586
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  With ActiveCell
   If .Column = 1 Then
    .Offset(-1, 1) = .Offset(-1).Value
   End If
  End With
End Sub
0589586NGNG
>>588
ありがとうです!(謝謝
0590南斗水鳥拳のレイNGNG
>>585
の
>2変量標準正規分布の積分をマクロでするにはどうしたらいいのでしょうか?
>たとえば、[-1,2]×[3,4]の場合を教えてください。

を答えられる人いないの?
0591デフォルトの名無しさんNGNG
漏れは、多変量解析と積分という分野なんでパス!数学板行ったら〜?
とか思った。けど、実は簡単だったりしたら恥ずかしいので黙ってた。
0592デフォルトの名無しさんNGNG
マクロを記録する…って答えじゃダメでつか?
0593デフォルトの名無しさんNGNG
>590
質問が漠然としすぎ。
これに(労せず)答えるには
1.2変量標準正規分布
2.excelの組み込み関数(に1関連のものがあるかどうか)

の両方を知っていないと逝けない。
585が何をどこまで知っているのか(知らないのか)
わからんのだから591のように様子見だろ。
例えば

/*
2変量標準正規分布の積分を求める方法を教えてください。
1変数の場合はNORMSDISTというワークシート関数があるのですが
2変数版が見つかりません。マクロを自分で組まなければいけないようですが
どうしたらいいでしょうか。
*/

くらい書いてあれば、もし関数があって詳しい人が居たら即答してくれるし、
なくて自作ということになれば「数値積分でググレ」くらいの答えは返ってくるよ。

とにかく585だけじゃVBA自体は触っていても数値積分のアルゴリズムが解らないのか、
マクロって何?なのか、そもそも正規分布からしてよく解らんのか、全然見当つかないもの。
0594南斗水鳥拳のレイNGNG
質問はまさにこんな感じです(コピーしただけ)。


2変量標準正規分布の積分を求める方法を教えてください。
1変数の場合はNORMSDISTというワークシート関数があるのですが
2変数版が見つかりません。マクロを自分で組まなければいけないようですが
どうしたらいいでしょうか。
0595デフォルトの名無しさんNGNG
だ〜か〜ら〜
0596デフォルトの名無しさんNGNG
数値積分でググレ
0597南斗水鳥拳のレイNGNG
>>596
どうやって?それを教えて。
0598デフォルトの名無しさんNGNG
……だからね、
>VBA自体は触っていても数値積分のアルゴリズムが解らないのか、
>マクロって何?なのか、そもそも正規分布からしてよく解らんのか、全然見当つかないもの。

小学生に説明するのと高校生に説明するのとじゃ教え方からして違うでしょ?
0599デフォルトの名無しさんNGNG
597は単にgoogle知らないとかいう話ぽ

ttp://www.google.com/intl/ja/
0600南斗水鳥拳のレイNGNG
>>598
アルゴリズムは、わかりやす、マクロもわかりやす。
0601南斗水鳥拳のレイNGNG
>>598
アルゴリズム、マクロもわかります。
あなたの精一杯の高度な説明求む。
0602デフォルトの名無しさんNGNG
>アルゴリズム、マクロもわかります。
それって既に問題解決してないか?
0603南斗水鳥拳のレイNGNG
>>602
マクロで書いてみてよ!
0604デフォルトの名無しさんNGNG
ごめんなさい、漏れの手に余ります。
頑張って自分で書くか、誰か他の人に当たってください。

すまないねぇ、でかい口叩いておいて……(w
0605デフォルトの名無しさんNGNG
まあここまで厨丸出しだと普通は逃げるわな(藁

おおかた期末のレポート課題を丸投げしたんだろうけど、
出来る限りの努力をするという意志がまるで感じられん。
ソースを全部人に書かせてそのまま提出しようと必死ぽいところが笑えるな。
0606南斗水鳥拳のレイNGNG
>>604
いいえ、とんでもありません。
誠意のあるコメントありがとうございました。
実は、SASでは2重積分していますが、エクセルでどうやってやるのかな
って思ったので・・・。
実際、周りの人は、エクセルしか使わないので、SASでプログラムしても
使ってもらえない→自分の所に、くだらない計算が回ってくる
ってな感じでして・・・。

いや、ほんと、ありがとう。
0607南斗水鳥拳のレイNGNG
>>650
君に一歩遅れて、書き込んだんだけど、
あまりに的外れ!
それから厨房(中学生坊主)って言葉で片付けるのは
ちょっと安易なんじゃない?ふふ・・。
0608南斗水鳥拳のレイNGNG
>>650
でなくて、
>>605
の間違いでした。
0609デフォルトの名無しさんNGNG
>実は、SASでは2重積分していますが、エクセルでどうやってやるのかな
って思ったので・・・。

最初から書けやゴルァ(゚д゚)
0610南斗水鳥拳のレイNGNG
>>609
まあまあ、落ち着いて!
許して ちょんまげ!
0611デフォルトの名無しさんNGNG
お聞きしたいことがあります。

ブラウザからエクセルにリンクを貼り、クリックするとエクセルを起動させます。
マクロは自動実行でCSVファイルをオープンし、処理して結果を画面に表示させる。
ということをやっているのですが、
ブラウザから起動したエクセルではCSVのオープン処理でエラーとなってしまいます。
ブラウザのウィンドウ内にエクセルとCSVの2画面を開けないためかと思われます。

CSVをオープンさせる方法、またはそれ以外の方法をしっていらっしゃる方がおられましたら
是非お教え下さい。宜しくお願い致します。
0612デフォルトの名無しさんNGNG
エクセルマクロから、VBで作った他のアプリケーションの sub を起動したいのですが、
どうやったらできるのか解りません
(VB側のアプリは事前に起動している前提です)
ご存知の方、よろしくお願いします
0613デフォルトの名無しさんNGNG
他のアプリはオートメーションオブジェクトOtherAppになっているという前提だけど、

Dim obj As OtherApp
Set obj = CreateObject("OtherApp.exe")
obj.OtherAppSub
0614デフォルトの名無しさんNGNG
ActiveX DLL プロジェクトならば

[SeqNumber.cls]
Option Explicit
Private Number As Long
Private Sub Class_Initialize()
Number = 0
End Sub
Public Property Get NextNumber() As Long
Number = Number + 1
NextNumber = Number
End Property
Public Property Get CurrentNumber() As Long
CurrentNumber = Number
End Property

とか作って、Excel側からは

Dim seq As New SeqNumber

というように使用すれば良いので CreateObject なんか使わなくて良い。
0615デフォルトの名無しさんNGNG
あ、Excelでは参照設定で設定しておく必要がある。
0616612NGNG
ありがとうございます
知識不足で、解らない単語が色々でてきたので、
参考にさせてもらいながら、がんばってみます
また、つまづいたら教えてください
0617デフォルトの名無しさんNGNG
すいません、アドバイス御願いします。
今までexcel2002に市販アドインの体験版を入れて使用していたのですが、
それをアンインストールしたいと思っています。
このアドインは常にツールバー上に表示されています。
アドイン本体を削除すると、excelが立ち上がるたびにロードできないというエラーメッセージが出てきます。
excelの設定でアドインの読み込み情報はどこに記録されているのでしょうか?
レジストリを検索したりしてみたのですが見つかりません。
詳しい方教えてください。
0618なつみNGNG
sheetAにデータの一覧があります。
sheetAのB列に都道府県のフィールドがあります。
そこで、sheetAにデータを入力後、"東京都"だったら
その行を丸ごとsheetBへ、"埼玉県"だったらsheetCへと振り分け
たいのです。sheetAのデータをすべて都道府県別に振り分けて
いきたいんです。それをコマンドボタンを作ってVBを記述
したいのですが、どのような記述をすればよいですか?(TT)
ちなみにボタン一つおすだけで、データの振り分けをしたいので
すがなにかいい方法をご教授ください。
0619デフォルトの名無しさんNGNG
>>618
ボタンの中の人に聞けよ。
0620名無しさん@そうだ選挙にいこうNGNG
いい方法?あんたは1つでも方法を見つけたのか?
何も考えずに教えろって書いてんだろ?

なつみ、風俗嬢にでも転職しな。
0621デフォルトの名無しさんNGNG
どうしてそういう態度なんでしょうねえ(w
解らないからカッカしてるんでしょうか(w
0622デフォルトの名無しさんNGNG
>>618
47都道府県のシートが全て揃ってるの?
0623なつみNGNG
>>622
すべてはそろっていませんが、半分ぐらいそろっている感じです!
0624デフォルトの名無しさんNGNG
>>617
「ツール(T)」メニューの「アドイン(I)...」は見たか?
0625デフォルトの名無しさんNGNG
>>623
無いシートは作成するの?
それとも、データが存在するシートは揃ってる?
0626なつみNGNG
>>625
はい、データが存在するシートはすべてそろえてます。
0627デフォルトの名無しさんNGNG
http://6530.teacup.com/test1/bbs
掲示板作ってみますた
0628デフォルトの名無しさんNGNG
ActiveXのコントロールをシートに直接貼り付けたいのですが、方法がわかりません。
教えてください、よろしこ。
0629デフォルトの名無しさんNGNG
Set xl = CreateObject("Excel.Application")
xl.Visible = True
xls.WorkBooks.Open "xxx.xls"

とVBScriptで書きました。

マクロ自動実行の Sub auto_open() が走りません。
どうすれば自動実行できるようになりますか?
0630629NGNG
すいません、できました。失礼しますた(汗
0631Excel VBAに関する質問ていうかNGNG
Excel 2000 SR1で複数シートとVBAでシステムを作ってたんですが、
最近Excelを終了しようとしたら落ちるようになりました。

Application.OnTime でタイマーを使うようになってからなのか他の事情か、
原因はわからないのですが、最近になってエラーが。

で、ついに今しがたファイルが開かなくなりました。
ファイルを開くと、開いた後に砂時計になり、エラーでExcelが異常終了します。

このファイルはもう開けないのでしょうか?(T_T)
マクロを無効にすればシート自体は開くので、VBAのコード部分が破損したのかなぁ・・・
0632Excel VBAに関する質問ていうか解決NGNG
破損原因はわからないものの、一応解決しました。

マクロを無効にして開けばファイル自体は読み込めるようです。
読み込んだらVB Editor画面ですべてのモジュールをコピーしました。

別のシートをマクロ有効にして読み込もうとするととたんに落ちるので
結局、VBAの初期化に関する部分が腐ってしまったのかなぁ・・・という感じです。
0633デフォルトの名無しさんNGNG
もしもし、個人用マクロブック(XLStartフォルダのxls)とかアドインは確認した?
使っていないならば関係無いが、こいつらは自動的に読み込まれるから、
壊れると何を開いてもエラーになるよ。
0634デフォルトの名無しさん NGNG
エクセルシートに表があるとして、データをキーボードで入力します。
しかし、入力値は「コード」や「商品名」などの定まった値で変化の無い
場合があります。ここに間違えて入力するのを防ぐために各セル(行数は
入力データ量によって変化)にドロップダウンリストを表示させ、そこから
選択させたいのです(オートフィルタみたいに)。リストに無い場合は
手入力優先になる必要があります。

まったく対処方法がわかりません。ポインタだけでも教えてください。
お願い致します。
0635デフォルトの名無しさんNGNG
>>634
あっちにレスしといた。
http://pc2.2ch.net/test/read.cgi/bsoft/1008219498/976
0636Excel VBAに関する質問ていうか解決NGNG
>>633

ご指摘ありがとです。XLStartには何も置いてません。
ひと世代前をタネにして、モジュールテキストをコピペして
難を逃れますた。

>>634

ドロップダウン(=リストボックス)を使いたいのであれば、リストボックスを
ベタベタ並べるとメンテナンス性が下がってしまうですよ。

入力のための行とデータが並んだ表をわける(入力ごとにVBAでコピペする)とか
してはいかが?
0637Excel VBAに関する質問ていうか解決NGNG
>>635
うわ、そのほうがはるかにシンプルだった・・・・
0638634NGNG
>>635
回答して頂き有難うございます。EXCEL2000と2002を使っています。
回答の指示に従いますと、参照セルのデータ以外が入力できません。

>リストに無い場合は手入力優先になる必要があります。
の条件が満たせません。

また、シート全体をクリアするとリストに何も表示されなくなります。
開くエクセルブックに手を加えないようアドインで実現したいのです。

実例とは言わないまでも、こうすればいいのでは?といった指南を
お願いいたします。
0639Excel VBAに関する質問ていうか解決NGNG
>>638

VBAは使わないの?
0640634NGNG
よく考えるとセルに表示させたいのは
リストボックスではなくてコンボボックスでした。
0641639NGNG
>>640 >>634
俺のお気に入りの方法で言えば、

Application.OnKey("{ENTER}", 入力チェック関数名)
でEnterキーをフックする方法がいいです。

入力チェック関数名() では、セルに入力されたのが規定のコードかどうかチェックし、
規定外ならエラーを出すとかしてるよ。
0642634NGNG
>>641
んんん?
それだとエクセルブックに依存しますよね。それは駄目なので
アドインにする必要があるのです。選択する項目はINIファイルに登録して
GetPrivateProfileStringで読み込もうかと考えています。
要はそれをコンボボックスに表示させる方法について悩んでいます。

>Application.OnKey("{ENTER}", 入力チェック関数名)
>でEnterキーをフックする方法がいいです。
矢印キーでセル移動する場合も考えるのでその方法は採用できないのです。
すいませんが。
0643639NGNG
>>642

あぁ、なるほど。
では識者のコメントを待とう。
0644634(957)NGNG
誤)要はそれをコンボボックスに表示させる方法について悩んでいます。
正)要は入力候補のデータが格納されたコンボボックスを、データ入力
  されるべきセルに表示させる方法について悩んでいます。
0645デフォルトの名無しさんNGNG
Aの列に単語を書いていきBの列にAの列の単語の組み合わせで
文字列を表示するのはどうしたらよいのでしょうか。
0646デフォルトの名無しさんNGNG
Excelシート上ののAの列に単語を書いていきBの列にAの列の単語の
組み合わせで文字列を表示するのはどうしたらよいのでしょうか。
よろしくお願いします。
0647デフォルトの名無しさんNGNG
二重カキコすいません。
0648デフォルトの名無しさんNGNG
>>645
意味がよくわからん。
もっと具体的に説明してくれ。
0649デフォルトの名無しさんNGNG
>>648
レスありがとうございます。
ワークシート上のAの列に
hoge
excell
vba
とかくとBの列に
hogeexcellvba
hogevbaexcell
excellhogevba
.
.
.
等とすべての組み合わせを表示させたいです。
0650デフォルトの名無しさんNGNG
>>649
A列のデータ数は不規則なのか?
2個だったり100個だったりする?
0651デフォルトの名無しさんNGNG
>>650
はい、そのときによって個数はかわります。
0652デフォルトの名無しさんNGNG
個数は Application.CountA で取得できそうだ。
問題は順列生成だな。総個数は Application.Fact で
求められるとして、順列か。うーん面倒くさい。
0653デフォルトの名無しさんNGNG
データの入力規則でプルダウンメニューを作りたいのですが、
最小値が0、最大値に別のシートにあるセルの値を参照するにはどうすればいいのでしょうか?
0654デフォルトの名無しさんNGNG
>>649
一応作ってみたよ。エラーチェックは省いてあるから細かい所は手直ししてね。

Dim count As Integer

Private Sub Perm(i As Integer, n As Integer, p() As Integer)
Dim j As Integer, t As Integer
Dim str As String

If i < n Then
For j = i To n
t = p(i): p(i) = p(j): p(j) = t
Perm i + 1, n, p
t = p(i): p(i) = p(j): p(j) = t
Next
Else
str = ""
For j = 1 To n
str = str + Range("a" + Format(p(j)))
Next
Range("b" + Format(count)) = str
count = count + 1
End If

End Sub
0655デフォルトの名無しさんNGNG
続き

Private Sub CommandButton1_Click()
Dim i As Integer, j As Integer, k As Integer

i = Application.CountA(Range("a1:a65535"))
j = Application.Fact(i)
ReDim p(j) As Integer

For k = 1 To i
p(k) = k
Next

count = 1
Perm 1, i, p

End Sub
0656デフォルトの名無しさんNGNG
スマソこちらに差し替えて下さい。

Private Sub CommandButton1_Click()
Dim i As Integer, j As Integer

i = Application.CountA(Range("a1:a65535"))
ReDim p(i) As Integer

For j = 1 To i
p(j) = j
Next

count = 1
Perm 1, i, p

End Sub
0657デフォルトの名無しさんNGNG
VBAでCSVファイルをExcel2002のシートに貼り付けようとして

(略)QueryTables.Add(Connection:="TEXT;c:\text.csv"(略)
上のような感じでやってみたのですが

文字化けしてしまって読むことが出来ません。
なにやらExcel2002ではテキストファイルを読ませると
デフォでWindowsANSIで読まれてしまうらしく、
文字コードの変換もわからず・・・

出来る方おりましたら教えてください
0658デフォルトの名無しさんNGNG
>657
sFilePath = "c:\text.csv"
sDir = Left(sFilePath, InStrRev(sFilePath, "\") - 1)
sFileName = Mid(sFilePath, InStrRev(sFilePath, "\") + 1)
sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & sDir & ";Extended Properties='text;HDR=NO;FMT=Delimited'"

ADO参照設定してこんな感じでやるんじゃないの?
SQLに使うテーブル名はsFileNameつかってよろしく。
0659デフォルトの名無しさんNGNG
素直にOpenしてからCopyしてPasteSpecialしたらどうだ?

Option Explicit

Sub CsvPaste(r As Range, FileName As String)
Workbooks.Open FileName:=FileName
Dim wb As Workbook
Set wb = ActiveWorkbook
wb.Worksheets(1).UsedRange.Copy
r.PasteSpecial _
Paste:=xlPasteValues, _
Operation:=xlNone, _
SkipBlanks:=False, _
Transpose:=False
wb.Close
End Sub

Sub test()
Dim r As Range
Set r = ThisWorkbook.Worksheets("Sheet1").Cells(1, 1)
CsvPaste r, "text.csv"
End Sub
0660デフォルトの名無しさんNGNG
>659,658
返答ありがとうございます

ADOで行ってみているのですが、
CSVの中に1.12345678901234E-02というような指数が1としか表示されません・・・
ADOの文字列が悪いのでしょうか・・?

それ以前にVBAではなくVBでやりたいと思ってやってるのがいけないのかな・・
0661デフォルトの名無しさん NGNG
>それ以前にVBAではなくVBでやりたいと思ってやってるのがいけないのかな・・
それ以前にVBA,VB共に入門書すら読んでないのがいけない。

>CSVの中に1.12345678901234E-02というような指数が1としか表示されません・・・
これ......。中途半端な知識では何の言語を使っても同じ。
0662デフォルトの名無しさんNGNG
プロジェクトのロック解除の仕方誰か教えて〜
0663デフォルトの名無しさんNGNG
>>662
そういうソフトがあるからググって探せ
0664デフォルトの名無しさんNGNG
整数型の配列を全て-1で初期化したいのですが、ループを回すしかないのでしょうか?
C言語のmemset関数みたいなのないでしょうか?
0665デフォルトの名無しさんNGNG
>>664 無い
0666664NGNG
>>665
マジですか?
0667665NGNG
>>666 マジでつよ。
0668664NGNG
>>667
そうですか。仕方ないのでループさせます。
御回答ありがとうございました。
0669デフォルトの名無しさんNGNG
>>668
しょっちゅうループ書くのが面倒で見苦しくなるのなら、関数にしちゃえよ。
memsetなんか簡単だろ。
0670デフォルトの名無しさんNGNG
あるワークシートをdeleteメソッドで削除しようとすると、
いちいち削除の確認をしてくるのだけど、このダイアログボックスを
出さずにするにはどーしたら良いのでしょうか?
おしえてちょーだい!
0671デフォルトの名無しさんNGNG
>>670
Application.DisplayAlerts = False
(処理)
Application.DisplayAlerts = True
0672デフォルトの名無しさんNGNG
>>671
早速のレスありがとうございます。
うまくいきました。
2ちゃんで、親切受けるのはじめてです。うれじー!!!
0673デフォルトの名無しさんNGNG
質問させてくだーさい。
AddLineやAddShapeにて描いたワークシート上の図形を
グループ化する良い方法は何でしょう?
SelectAllは関係ないほかの図形も選択してしまうので使いたくありません。
よろしくおねがいしまーす。
0674デフォルトの名無しさんNGNG
Dim shps As Shapes
Set shps = ThisWorkbook.Worksheets("TEST").Shapes
Dim shp1 As Shape
Set shp1 = shps.AddLine(10, 10, 110, 110)
Dim shp2 As Shape
Set shp2 = shps.AddLine(10, 110, 110, 10)
Dim sr As ShapeRange
Set sr = shps.Range(Array(shp1.Name, shp2.Name))
sr.Group

こんな感じでやれば良いはず。
0675デフォルトの名無しさんNGNG
グラフをメタファイル形式で保存するのは無理なんでしょうか?
exportではGIFとJPEGのみ?
0676673NGNG
>>674
わかり易い例をありがとうございます。
なんとなく、わかりました。が、
いくつの図形が描かれるかは、前もってわかりません。
Arrayに動的に引数を与えることが出来るのでしょうか?
また、その方法は?
質問ばかりですいません。
0677デフォルトの名無しさんNGNG
>>676
ヘルプで ReDim ステートメントを引くべし。
0678673NGNG
674の例を以下の様にredimt使ってやってみましたが、
「アプリケーション定義またはオブジェクト定義のエラー」
となってしまいます。何故なのでしょう。
Dim MyArray() As Variant
Dim shps As Shapes
Set shps = ThisWorkbook.Worksheets("TEST").Shapes
Dim shp1 As Shape
Set shp1 = shps.AddLine(10, 10, 110, 110)
Dim shp2 As Shape
Set shp2 = shps.AddLine(10, 110, 110, 10)
ReDim MyArray(2)
MyArray(0) = shp1.Name
MyArray(1) = shp2.Name
Dim sr As ShapeRange
Set sr = shps.Range(MyArray)
sr.Group

なにとぞお助け下さい。
0679デフォルトの名無しさんNGNG
>>678
0680デフォルトの名無しさんNGNG
× ReDim MyArray(2)
○ ReDim MyArray(1)

または
> ReDim MyArray(2)
> MyArray(0) = shp1.Name
> MyArray(1) = shp2.Name
この3行を次の1行で
MyArray = Array(shp1.Name, shp2.Name)
0681デフォルトの名無しさんNGNG
VBAのヘルプの例のコードを実行したら一回目はうまく動くのですが、
2回目に実行するとエラーになります。教えてください。
Set myBar = CommandBars _
.Add(Name:="ユーザー定", Position:=msoBarPopup, Temporary:=False)
With myBar
.Controls.Add Type:=msoControlButton, ID:=3
.Controls.Add Type:=msoControlComboBox
End With
myBar.ShowPopup
0682デフォルトの名無しさんNGNG
>681
そもそも同じ名前で追加するのはOKなのか?
0683デフォルトの名無しさんNGNG
Excel97のユーザーフォームでリストボックスやコンボボックスを
使うときにタイトル行を付ける事ができます(ColumnHeads=True)
が、シートがソースの時しか機能しません。
値をaddItemやListやColumnで設定したときにタイトル行を表示
するにはどうすればいいか教えてください。
0684デフォルトの名無しさんNGNG
>>682
というより、2回やる必要があるのか!
0685デフォルトの名無しさんNGNG
エクセルのVBAで、他の.exeファイルを呼び出すことは出来ますか?
マクロを走らせた時にWACOMのPenPlusパーソナルを呼び出したいのですが。
0686デフォルトの名無しさんNGNG
>>685
>>37-40 あたり
0687デフォルトの名無しさんNGNG
教えてください。
フォームウィンドウを移動した時に、残存画面が
残ってしまうんですが、残らないようにする事は出きるのでしょうか?
0688デフォルトの名無しさんNGNG
残らないぞ。OSは何だ?
ディスプレイドライバがバグっているのではないか?
いっぺん再起動してみてくれ。
それでダメなら、次はディスプレイドライバのバージョンアップだな。
0689デフォルトの名無しさんNGNG
>>688
レスどうもです。
OSはWindows2000です。
もう一つ別のフォームは残らないのですが、
今のところそのフォームだけが、残ってしまいます。
再起動しても駄目でした。
ちなみにWin98の他のPCでも試しましたが同現象です。
ドライバの更新試して見ます。
0690デフォルトの名無しさんNGNG
フォームにTextBoxとCommandButtonを張り付けて、
TextBoxに整数を入力した後、Buttonを押して、イベント発生みたいなことをやってます。
んで、イベント部分で、
Dim s As String
Dim i As Integer

s = TextBox1.Text
i = ?
とか書いてsを変換してiにIntegerの値を入れたいのですが、
StringをIntegerに変換するにはどうやるのでしょうか?

i = CInt(s)では、データ型変換エラーみたいなのが出ました。
0691デフォルトの名無しさんNGNG
>>690
なぜ最初にStringに・・・
0692デフォルトの名無しさんNGNG
>681
実行前に同じ名前のCommandBarをCommandBarsから削除する必要があります。
For Eachとか使って。
0693デフォルトの名無しさんNGNG
>689
688のおっしゃるとおりドライバが怪しい。
ハードウエアアクセラレータを「なし」にしてみるもの手。
0694デフォルトの名無しさんNGNG
>690
IsNumeric(s)で数値となりえるか確認して味噌。
0695デフォルトの名無しさんNGNG
>>694
100000もTrueだが?
0696VBA初心者。NGNG
ヒントを頂きたいのですが、
フォームからファイルを開く操作をしたいのですが、
BVにあるファイルリストボックスみたいな動きをさせる方法はありますか?
うまくいきません。
良い方法があればお願いいたします。
0697デフォルトの名無しさんNGNG
FileSystemObject
0698VBA初心者。NGNG
>>697
FileSystemObjectで検索して見ましたが
今のところ良いヒントが見つかりません。
どなたかもう少し詳しくヒントをいただけませんか。
手持ちの書籍では載っていませんし、
ネットで検索しても自分がやりたいことの項目がありませんでした。
エクセルVBAのフォームからwinでのファイルを開くや
保存する時に出てくるドライブ選択窓やファイル選択窓を出したいのです。
よろしくお願いします。
0699デフォルトの名無しさんNGNG
>>698
なんかこれが一番答えに近そう。
http://www.mougb.net/cgi-bin/mdboard.cgi?acopr+ML2002100047
0700デフォルトの名無しさんNGNG
700まんこ
0701デフォルトの名無しさんNGNG
>>698
GetOpenFilename では何か都合が悪いのか?
0702VBA初心者。NGNG
>>699
ありがとうございます。探してみます。

>>701
都合が悪いわけではないのですが、フォームから項目を入力して
セルにデーターを落としてシートのみを別名で保存するって言う方法で
見積書を作っているのですが、保存しているシートをフォームから
呼び出すのにファイルリストを出したいのです。
知識が乏しく思うような動きが出来ません。
GetOpenFilenameは何かアクション(ボタンを押すなど)で指定のファイルが
開くってことですよね?
どのファイルを開くかは特に決まっていません。
0703VBA初心者。NGNG
>>701
すみませんでした、GetOpenFilenameって知らなかったのですが
ファイルを開くダイアログボックスが出るのですね。
ありがとうございました。解決しそうです。
がんばります。
0704683NGNG
>683
分からんので外側にラベルを貼り付けることにした。
0705デフォルトの名無しさんNGNG
あるブックがOPENされているかどうか調べて,
開かれてなかったら開くという処理をしたいのですが,
はじめの調べるところのやりかたがわかりません。
どなたか教えてください。
0706デフォルトの名無しさんNGNG
>705
WorkbooksコレクションをNameで比較すればいいんちゃう?
0707デフォルトの名無しさんNGNG
>706
なるほどやってみます。
ありがとうございます。
0708デフォルトの名無しさんNGNG
すいません、教えて下さい
エクセルでチェックボックスをクッリクすると文字が印字されて、
チェックを消すと文字が消えるマクロの組み方しりませんか?
0709デフォルトの名無しさんNGNG
>708
式で作れ。
=IF(checkboxdata,"文字","")
0710デフォルトの名無しさんNGNG
教えてください。
シート上でshiftを押しながら右クリックしたときだけ、ある右クリックメニューを
だしたいのですが、shiftを押しているかどうかの判定はどのようにすればできるのでしょう?
よろしくお願いします。
0711デフォルトの名無しさんNGNG
・・・
案だけ

KeyDownイベントにシフトキーを判定して押されてたら
シフト=ON


KeyUpイベントにシフトキー判定して 離されてたら
シフト=OFF

BeforeRightClickのなかで

if シフト=ON then
  ・・・・
endif


変数シフトの定義に注意すれば いけそうだが。


0712デフォルトの名無しさんNGNG
>>710
はよ退職せーや。働かれると迷惑だ。
0713デフォルトの名無しさんNGNG
>>712
おまえが社長だったら、おまえの下で働かされている社員が不憫だ(w
0714デフォルトの名無しさんNGNG
盛り上がってまいりました!!
0715デフォルトの名無しさんNGNG
710です。
>>711
シートには、KeyDown、KeyUpイベントがないようなのです。
それで、困っています。それとも、あるの?
>>712
答えられない無職ヤローはひきこもってろ。もとい、ひっこんでろ。
0716デフォルトの名無しさんNGNG
>>715
C++ でフック DLL を作れ。
0717デフォルトの名無しさんNGNG
>>715
というか、自分もわからないクセに偉そうだな。
0718デフォルトの名無しさんNGNG
>>717
ネタにマジレスかっこ悪い。
0719デフォルトの名無しさんNGNG
>>715
あ・・・
シートには、keyup とか 無かったみたい・・ スマン

初めから、右クリックのメニューに、
 SIFTキーを押したとき用のも表示されるようにしておく・・・
じゃ だめですよね

いい案 浮かばん・・・・
0720VBAでメールを送りたいNGNG
特定のセルが特定の条件に達した段階で、メールを送るようなマクロ
を書きたいのです。MAPIを使わずにできるでしょうか?いろいろ調
べたんですけど、さっぱりです。本も5冊持ってるんですけど、手が
かりをつかめません。ある程度の方向がわかれば自分で調べますので、
教えてくださいませんか?
0721デフォルトの名無しさんNGNG
>>720
はよ退職せーや。働かれると迷惑だ。
0722デフォルトの名無しさんNGNG
>>720
cmailっつーメールm送信専用のフリーソフトがあるから、
それ呼び出せばいい
0723デフォルトの名無しさんNGNG
>>720
sendkeyで手動手順を再現させれば出きるかも・・
ただ、メールソフトの起動のタイミングとか かなりむずいです
(フォーカスの移動が・・・)

>>722さんのフリーソフトは知りませんが、そういうのを起動させるだけ!の方が
現実的かと。
0724デフォルトの名無しさんNGNG
>>710
GetKeyState(nVirtKey)
GetAsyncKeyState(nVirtKey)
あたりのAPIあたりでうまくいくかも。

>>720
"mailto:(メールアドレス)"というアドレスをブラウザで開こうとすると、自動でメーラーが立ち上がる。
これを利用するとか。
0725デフォルト名無しさんNGNG
列に空白が存在する場合上の値と同じデータを入れる処理を行いたいと
思って下記のように書いたのですが。
For i = ActiveSheet.UsedRange.Rows.Count To 1 Step -1
' セルが空白だった場合上のセルを今のセルへコピー
If Cells(i, 1).Value = "" Then
Cells(i - 1, 1).Copy Cells(i, 1)
End If
Next
空白が1行の場合だと埋めてくれるのですが、2行以上空白が続くと
うまくいきません、どうすればうまくいくでしょうか?おながいします
0726デフォルトの名無しさんNGNG
>>725
下から走査すりゃそうなるのが当たり前だろう。
0727デフォルト名無しさんNGNG
>>726
なるほど、こりゃ下からって意味だったのか。for文の仕組みも
よくわからずに打ってたよ。サンクス
0728tanteiNGNG
★あなたのお悩み解決致します!!
●浮気素行調査
彼氏、彼女、妻、夫の浮気を調査致します!!
●別れさせ工作
あらゆる手段を使ってターゲットを別れさせます!!
●盗聴器盗撮機発見
あなたの部屋に誰かが仕掛けているかも!!
●行方調査
行方不明になっている家族の消息を調査致します!!
●電話番号から住所割り出し
一般電話、携帯から住所を割り出し致します!!
その他人生相談からどんなお悩みでも解決いたします!!
 直通  090−8505−3086
URL  http://www.h5.dion.ne.jp/~grobal/
メール  [email protected]
   ■グローバル探偵事務所 

0729デフォルトの名無しさんNGNG
>720
BASP21.DLLとかを使う手もあるでよ。
「VBAで」と言えるかどうか疑問だけど。
0730excel 290NGNG
同じ名前のオートシェープがあると、
x = 0
For Each obj In ActiveSheet.DrawingObjects
obj.text = cstr(x)
x = x + 1
Next
同じ名前の一つ目の図形しか、テキストが変わりません。
なぜでしょうか?
0731デフォルトの名無しさんNGNG
>>730
よくわからんが
こうやって、何回ループしてるか 試して

x = 0
For Each obj In ActiveSheet.DrawingObjects
obj.Text = CStr(x)
x = x + 1
Debug.Print x, CStr(x) 'ここに こうやって
Next
0732デフォルトの名無しさんNGNG
>>730
できたら 前後のコードも 見たい
0733デフォルトの名無しさんNGNG
>>731
ループの回数はOK。なんかねー。VBでいう、同じ名前のボタンが配列みたいな状況なのよ。
ループ中は、
[T1] [T2] [T1] [T2] [T3] なんだけど。
      ==== この二つのテキストを書き換える方法が知りたい。
0734デフォルトの名無しさんNGNG
>>733
DrawingObjects
にカーソルおいてPF1のヘルプは?

コード全部晒してくれないと 試す気にjならんので ゴメソ
0735デフォルトの名無しさんNGNG
VBA入ってるけど、VB入れてないのでヘルプファイルは無い。(藁

逆にほかの方法で、オートシェープのTextBoxにアクセスできればそれでも良いのですが…

コードはこれ以上晒す必要は無いはず。
ActiveSheets.DrawingObjets("T1").Text = "123456"
これで、T1という名前のTextBoxが複数あった場合、
すべてにアクセスする方法が知りたいのですが…
0736デフォルトの名無しさんNGNG
> VBA入ってるけど、VB入れてないのでヘルプファイルは無い。(藁
あんたのセリフ素人臭すぎ怪しすぎ。
VBAのヘルプにのってるでしょ?
それにVBのヘルプっていうのはMSDN。VCとかと共通。
0737デフォルトの名無しさんNGNG
>>733
アクセスさえ出来ればいいというならとりあえずこんな感じか。

Set obj = ActiveSheet.DrawingObjects
x = 0
For x = 1 To ActiveSheet.DrawingObjects.Count
obj(x).Text = CStr(x - 1)
Next
obj = ""
0738デフォルトの名無しさんNGNG
>>735
なんとなく
無理っぽい・・ けど わからん
メルくれたら 該当ありそうなとこの HELP抜粋送るが・・

同じ名前がつくの?
そのループ内で .NAMEプロパティを・・・ いや やっぱ わからん



0739734NGNG
>>737
あー 動きますね(最後の一行はErrだったけど)
0〜数分の textが連番で 入りますね
0740tanteiNGNG
★あなたのお悩み解決致します!!
●浮気素行調査
彼氏、彼女、妻、夫の浮気を調査致します!!
●別れさせ工作
あらゆる手段を使ってターゲットを別れさせます!!
●盗聴器盗撮機発見
あなたの部屋に誰かが仕掛けているかも!!
●行方調査
行方不明になっている家族の消息を調査致します!!
●電話番号から住所割り出し
一般電話、携帯から住所を割り出し致します!!
その他人生相談からどんなお悩みでも解決いたします!!
 直通  090−8505−3086
URL  http://www.h5.dion.ne.jp/~grobal/
メール  [email protected]
   ■グローバル探偵事務所 

0741金正日NGNG
   ,rn                 
  r「l l h.                / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  | 、. !j                | 
  ゝ .f         _      |  
  |  |       ,r'⌒  ⌒ヽ、.  │  http://freehost.kakiko.com/hiroyuki/
  ,」  L_     f ,,r' ̄ ̄ヾ. ヽ. │   こんなのあったニダ
 ヾー‐' |     ゞ‐=H:=‐fー)r、)  | 
  |   じ、     ゙iー'・・ー' i.トソ   | 
  \    \.     l ; r==i; ,; |'  .人_ 
   \   ノリ^ー->==__,..-‐ヘ___
     \  ノ ハヽ  |_/oヽ__/     /\
      \  /    /        /  |.  
        y'    /o     O  ,l    |
0742デフォルトの名無しさんNGNG
名前って具体的に何を指してるのだ?
なんか取り違えているいる気がする。

ループ回数が合っているなら、
どのように(どのプロパティを)T1
と名付けているのか分からんが、
1回目のループのT1と次のループのT1は同じ
コントロール(オートシェイプ)を
参照しているから、1つしか変わらない
様に見えるのでは?
0743デフォルトの名無しさんNGNG
>ActiveSheets.DrawingObjets("T1").Text = "123456"
これで、アクセスできるのなら、

>これで、T1という名前のTextBoxが複数あった場合
"T1"というインデックスのオブジェクト(DrawingObjet)
は複数作成することはできない。
0744デフォルトの名無しさんNGNG
>>743
論点が違うと思うのだが。作成出来てるから質問してきてるわけだし。

実際試してみたけど、DrawingObjetsコレクションのNameプロパティに
設定する値はユニークでなくても構わないみたいだよ。

つか手動で名前を付けた描画オブジェクトをコピペで複製すると、
みんな同じ名前になるから試してみなよ。
0745デフォルトの名無しさんNGNG
>>743はうそ言ってた。ゴメソ。
コピペで複製しても同じ名前にならなかった。
コード内で名前を同じにするとできるね。

でも、これは無理だろな。VBAはコントロール配列
はできない。インデックス名じゃなく、
上にもあるように、インデックス番号で逐一変えていく
しかないね。
0746デフォルトの名無しさんNGNG
>>745
T1, T2 を作成。
T1, T2 をShift+Ctrlで同時選択。
コピペ。
で作れます。

コントロール配列の場合、Objectが配列かどうかはどう調べますか?
0747excel 290NGNG
>>745
ですから、インデックス番号で、3番目にアクセスしているのに、1番目が書き換わってしまうんです。
バグですかね?
0748excel 290NGNG
以下のPGの上半分では、Group化したオブジェクトの中身を取得しようとしていますが、
うまく動きません。TextBoxesが無いというメッセージが出ます。
どうすればうまく動きますか?
For y = 1 To st.GroupObjects.Count
For x = 1 To st.GroupObjects(y).TextBoxes.Count
Set shape = st.groupsobjects(y).TextBoxes(x)
Debug.Print "Shape " + TypeName(shape) + "/" + shape.Name + "/" + shape.Text
For i = 1 To UBound(DICTKEYS)
shape.Characters.Text = Replace(shape.Characters.Text, DICTKEYS(i), DICTVALS(i))
Next
Next
Next
For x = 1 To st.TextBoxes.Count
Set shape = st.TextBoxes(x)
Debug.Print "Shape " + TypeName(shape) + "/" + shape.Name + "/" + shape.Text
For i = 1 To UBound(DICTKEYS)
shape.Characters.Text = Replace(shape.Characters.Text, DICTKEYS(i), DICTVALS(i))
Next
Next
0749デフォルトの名無しさんNGNG
グループ化はまとめて参照出来るところが利点なのだと思うが。

まともにやるならグループ化解除して、処理終了後に再度グループ化。
0750excel 290NGNG
ありがとうございます。
グループ化を解除する方法を教えてください。
また再びグループ化する場合、
含まれていたオブジェクトがどれなのか調べる方法はありますか?
0751デフォルトの名無しさんNGNG
> グループ化を解除する方法を教えてください。

Ungroup

> また再びグループ化する場合、
> 含まれていたオブジェクトがどれなのか調べる方法はありますか?

面倒なので、グループを別のシートにカット&ペーストしてから作業
すれば? 作業が終わったらまたカット&ペーストで、元のシートに
戻す。
0752デフォルトの名無しさんNGNG
.captionじゃねー?
0753山崎渉NGNG
(^^)
0754山崎渉NGNG
   ∧_∧
  (  ^^ )< ぬるぽ(^^)
0755デフォルトの名無しさんNGNG
730じゃないけどグループ化したオートシェープについて質問。

class hoge にaddshape()でhoge1,hoge2,hoge3……と作った図形をメンバに持たせた上でgroup化しました。
(hoge3は四角形です)

debug.print hoge3.TextFrame.Characters.Text

で図形にカキコ済みのテキストを表示するのはできたんだけど、

hoge3.TextFrame.Characters.Text ="test"

とすると以下のエラーメッセージが出ます。


実行時エラー'1004'
Characters クラスの Text プロパティを設定できません。

textframeやcharactersをヘルプで見ると書き込みも出来るはずなのに……どうして?
0756デフォルトの名無しさんNGNG
んで、これを各モジュールに貼り付けると上のエラーが発生。
---------------------標準モジュール------------------
Sub add_hoge()
Dim x As New choge
x.create_hoge '図形のグループを生成
x.c_text 'テキスト書き換え(エラー)
End Sub

---------------------クラスモジュール-----------------

Dim hoge0 As Object
Dim hoge1 As Object
Dim hoge2 As Object

Public Function create_hoge() '二つの図形hoge1とhoge2をグループ化
Dim mys As Object
Set mys = ActiveSheet.Shapes
Set hoge1 = mys.AddShape(msoShapeIsoscelesTriangle, 0, 0, 45, 45)
Set hoge2 = mys.AddShape(msoShapeRectangle, 0, 0, 45, 45)
hoge2.Select
Selection.Text = "test0"
Set hoge0 = mys.Range(Array(hoge1.name, hoge2.name)).Group
End Function

Public Sub c_text() 'hoge2のテキストを書き換え
Debug.Print hoge2.TextFrame.Characters.Text
hoge2.TextFrame.Characters.Text = "test1" '←ここでエラー
Debug.Print hoge2.TextFrame.Characters.Text
End Sub
0757デフォルトの名無しさんNGNG
>>755
ぶっちゃけ無理なんじゃないの? 画面上からは確かに出来るけど、
マクロ記録中だと出来なくなるし、上の方の回答にも、バラしてから
やれなんてのがあったし。

調べてみたところによると、VISIOには階層化したオブジェクトの子階層
にアクセス出来る定数があるみたいだ。具体的には
Shapes(1).Shapes(1), visSubSelect←これ
こんな感じで下の階層のシェイプをマウントすると、単独のシェイプと
同じようにアクセス出来るらしい(使った事無いから自信は無いが)。

ご存知の通り、エクセルにはこれに相当するメソッドは無い。
0758デフォルトの名無しさんNGNG
シートになにかをコピペで貼り付けられると動き出すマクロってエクセルでできます?
手入力だと動き出さないけどコピペだと動き出すようなもの。
0759デフォルトの名無しさんNGNG
>>758
手動でも動き出す

動いたあとに、手動かコピーか判別できればいいが、
それも多分無理
0760デフォルトの名無しさんNGNG
>>759
そうですか。残念。
最低限、シートが書き換えられたかどうかは
Worksheet_Change(...)でやればいいんですよね?
0761755NGNG
>757
駄目かぁ……情報TNX
結局グループ解除→書き換え→再グループ化で実装してみますた。


Public Property Let hogename(str As String)
hoge0.Ungroup
hoge2.Select
Selection.Characters.Text = str
Set hoge0 = Selection.ShapeRange.Regroup
End Property


そもそもバラした状況でも、一旦hoge2をselectしてからでないとtextを書き換えできなかった罠。
なんか激しく勘違いとかしてないだろうか不安……
0762デフォルトの名無しさんNGNG
>>760
ですね
0763デフォルトの名無しさんNGNG
>>758
目的(やりたいこと)を書いてくれたら
もう少し、他の手段でも、誰か考えてくれるかも
0764デフォルトの名無しさんNGNG
>>763
いや、会社の事務作業なんですけどアンケートみたいなのやってて
エクセルのシートで入力フォームつくって配布しているんです。
各シートに固有な情報を隠しセルに埋め込んで、回収後に
マクロで集計しているんですけど、
人によっては他人の入力したシートをそのまま全コピー&全ペーストしちゃって
隠しセルの情報を壊してしまうわけです。
セルの保護機能も考えたけど、動くマシンとそうじゃないマシンがあるって話も聞いたことあるし
イベントマクロで保護できないかなと考えたわけです。
全コピー&全ペーストをブロックできればな、って考えてます。
0765デフォルトの名無しさんNGNG
>>764
情報を隠しセルに埋め込んだりせず、マクロ内に記述すればいいのでは?
シートの関数やデータなんてすぐに破壊されちまうからな。
0766デフォルトの名無しさんNGNG
>>765 (レスありがとうございます)
ええ、ただ、配布する各個人毎に入力フォームの内容が少しづつ違うんですよ。
マクロでマクロを書き込めれば話は別なのですが、
VBAの場合できないですよね?
隠しシートも考えたのですが、その情報を参照しているセルがコピペで破壊されたらと考えると
やっぱり「コピペ」自体を防止する方法がないかなと考えております。
0767デフォルトの名無しさんNGNG
>>764
ファイルのプロパティとかは・・・

シート1がアンケートで、シート3が何気に隠し情報とか

0768765NGNG
>>766
情報を参照しているセルを含むシートを非表示にすればいい。
0769765NGNG
768は誤爆です。

>>766
エクセルファイル名の末尾にシートを識別するフラグをつける等して
select case で別々のfunctionを呼べばいい。
0770765NGNG
>>766
そうだ、「貼り付け」をメニューから消せばいいじゃん。
マクロで。
0771デフォルトの名無しさんNGNG
>>768
アンケートシート自体が隠し情報を参照していて、
このシートを非表示にしてしまうとまずいのです…
って、そうかぁ!シートの数式で参照させるのじゃなくて
なにか入力があったら Worksheet_Change で内容を非表示シートに
転送すればよいのか!?
う、上手くいきそうです。ありがとうございます!
0772765NGNG
メニューバー変更
http://www.asahi-net.or.jp/~zn3y-ngi/YNxv203.html#5
0773766NGNG
>>770
え、標準メニューもマクロから消せるのですか!?
0774765NGNG
「上書き保存」と「終了」以外、全部消せばいい
0775766NGNG
>>774
まじですか!? カゲキ!!
うーん、ちょっと考えてみようかな…。
ただ、ユーザから「お前のファイル読み込んだら俺のエクセル壊れたんだけど
どうしてくれる!」ってクレーム殺到しそうで怖いなぁ。
0776デフォルトの名無しさんNGNG
>>774
メニューから消しても
右クリックでコピーとかされるんじゃないの?
0777765NGNG
>>776
右クリックメニューも消せばいい
0778776NGNG
>>777

w
了解

777おめ
0779デフォルトの名無しさんNGNG
コメントに設定情報もたせるのはだめ?

Excelでしか使えなくなるけど。
0780アクセス素人NGNG
accessで モジュールをつかって
コマンドボタンとコマンドボタンを線でつなげたいのですが
そのやり方キボンヌ

というか教えてください おながいします
0781デフォルトの名無しさんNGNG
直線コントロールのプロパティでもいじれば?


あまり興味がない題材なので具体例は省くが
0782デフォルトの名無しさんNGNG
あと、ここはExcel(重要) VBAについてというスレなんで念の為
0783アクセス素人NGNG
すれ違い すみません
0784デフォルトの名無しさんNGNG
ActiveCellの列名を取るにはどうすればよいの?
行はOffsetで取ってこれたんだけど。
0785デフォルトの名無しさんNGNG
>>784
なんのこっちゃ?>行はOffsetで

With ActiveCell
    Debug.Print .Row
    Debug.Print Left$(.Address(, False), IIf(.Column > 26, 2, 1))
End With
0786デフォルトの名無しさんNGNG
>>777
ショットカットキー(Ctrl+C,Ctrl+V)は?
0787デフォルトの名無しさんNGNG
ワードアートとかオートシェィプを回転させたいので
ThisWorkbookに↓をきったんだけど
図形を変えたら動かなくなってしまった!

Shapesの()内の指定ってどうだっけ?


Option Explicit

Private Sub WorkBook_Open()

Dim PauseTime As Date, Start As Date
Dim i As Double

PauseTime = 0.01

For i = -90 To 0 Step 3

Start = Timer

Do While Timer < Start + PauseTime
DoEvents
Loop

ActiveSheet.Shapes(1).ThreeD.RotationX = i

Next i

End Sub

0788784NGNG
>>785
まちがった。たまたまActiveCellに行番号が入力されてたので
その値を取ってきてただけだった。
0789787NGNG
解決しました。スマソ。
0790デフォルトの名無しさんNGNG
>>766
シート上にフォームを作るんじゃなくて、シート上にボタンを配置して、
ボタンを押すとアンケートのダイアログを表示するような形にすれば?
ダイアログなら、想定外の操作をされる可能性はかなり減る。
0791デフォルトの名無しさんNGNG
アンケートを集計って、、、
ACCESSでやれよ。
0792デフォルトの名無しさんNGNG
なんでやねん
0793デフォルトの名無しさんNGNG
EXCELでやるって言う発想が出てくること自体がおかしいんだ
から言ったって無駄無駄
0794デフォルトの名無しさんNGNG
集計をエクセルでやるという発想自体は普通だろ
0795デフォルトの名無しさんNGNG
久々にVBA使ったんだ。
構造体返す関数を作ったら
「ユーザ定義型はパブリックオブジェクトモジュールで宣言しないとだめぴょん!」
とエクセルに怒られたんだけど、これってクラス使ってオブジェクトで返せってこと?
確かエクセル95の時はOKだったような気がするんだけれどなあ。
いつ頃からこんなんなっちゃったの?
0796デフォルトの名無しさんNGNG
>795
標準モジュールにpublicでユーザ定義書けばいいんでないかい?
0797デフォルトの名無しさんNGNG
また質問させて頂きます。
環境:excel2000

あるクラスにオートシェープへの参照をメンバ(hoge as object)としてもたせています。
hogeが指す図をクリックしたらマクロを実行する、というのをやっててつまづいてしまいました。

下のようにonactionを使用すると、標準モジュールにあるマクロsub1は呼び出せたのですが、
そのクラス自身のメンバメソッドを呼び出す方法が不明です。これって呼び出せるものでしょうか?
駄目な場合、代替手段として標準モジュールのマクロに自分自身
(hogeを持っているクラスのインスタンス、thisポインタ)を渡す事は出来ますか?


class_initialize()
set hoge = addshape(適当な図形) '図の追加
hoge.onaction = "sub1" 'hogeをクリックするとサブルーチンsub1を呼び出す
'sub1をクラスのメンバにしたい
'又はsub1にthisを渡したい
0798Beginner's LackNGNG
コンポボックスを、出力先セルを1行ずつずらしながら貼り付けていくこと、って
出来ますか?

貼り付け先のセルの指定を変数にしたいのですが・・・
0799766NGNG
>>790
レスサンクスです。
入力項目が300行x36列ありまして
フォームだとグリッドのocxかなにか使うことになってしまいます。
できればシートでいきたいです。
すんません。実はアンケートというよりも数値入力といったほうが
適当だったかもしれません。
0800デフォルトの名無しさんNGNG
>入力項目が300行x36列ありまして
これでコピペ不可かよ。殴っていいか?
0801デフォルトの名無しさんNGNG
>798
マクロ記録機能を使えば簡単にわかるけど、コンボボックスを追加するには、
「フォーム」なら
Sheet1.DropDowns.Add()
「コントロールツールボックス」なら
Sheet1.OLEObjects.Add();
位置は、セルに対してLeftとかTopプロパティを調べる。

でも、追加したいコンボボックスの数の上限がわかっているなら、
あらかじめ全部をシートに配置して、それの表示・非表示切り
替えたほうが簡単かな。
0802766NGNG
>800
え?
シートの全セルコピー&全ペーストされちゃってるんですが…
それで隠しセルの内容が破壊されちゃってるわけです。
0803766NGNG
>>800
失礼。入力者の労力を考えれば…、ということですね。
それはその通りなんです。殴られちゃってもしかたないです。
だから欲をいえば「シートの全セルコピー&ペースト」だけ防止したいんです。
マクロ的に書けば Worksheet.Cells.PasteSpecial のみ防止というか…
(余計殴られちゃうかな…、あうー)
0804質問させてくださいましNGNG
いくつかのシートを持つブックを作りました
�@シートごとにボタンと、それにリンクされたマクロがいくつかあります。
�Aシートごとにシート保護が設定されているものといないものがあります。
�Bメールの送受信を取り扱うため、タイマを使って自動運転をしています。

あるシートをコピペして、新しいシートを作り保護したところ、
シート全体が特定ボタンにリンクされてしまったようで、本来ならボタン上でのみ
指先に変わるはずのマウスカーソルが、シートのどこにあっても指先になってしまいました。

同じ体験&解決した方はいらっしゃいますか?
コピペしたバチがあたったのでしょうか?w
最後の手段として、シートをイチから作り直すことは考えていますが、
できれば回避策がないものかご教授いただけるなら、と書き込んでみました。
0805デフォルトの名無しさんNGNG
特定のセルに入力したときにイベントを発生させるには、どういうコードを記述すればよいのですか?
0806デフォルトの名無しさんNGNG
>>805
ENTER, RETURN をフック、アクティブセルで判断する
0807デフォルトの名無しさんNGNG
>>805
普通にWorksheet_Changeに書けばいいじゃん
引数のTargetを見て特定セルかどうか見ればよろし
0808デフォルトの名無しさんNGNG
>806
VBAでプロシージャは使えないだろ。
0809デフォルトの名無しさんNGNG
今さらだけど>>19って
http://bpstore.nikkeibp.co.jp/msp/book/03359/03359.html
これのこと?
0810805NGNG
>>807
If文で、TargetとRangeの中身の値を比較する方法ですね。
ありがとうございます。

0811デフォルトの名無しさんNGNG
>>806
プププププ
0812デフォルトの名無しさんNGNG
>>808 かなり意味不明
0813デフォルトの名無しさんNGNG
>>808
>>811
やったことないヤツはすっこんでろよ。
実際できてんだから、煽る前に調べろっつーの。カスどもが。
0814デフォルトの名無しさんNGNG
webクエリを使って、データを取得するときに、アクセスが混雑してるせいか、
たまに「ページが開けません」みたいなメッセージボックスが出るんだけど、
これを無視する方法知りませんか?
DisplayAlerts使ってもやっぱり出てきます。
0815デフォルトの名無しさんNGNG
>806
馬鹿発見(wwwww
0816デフォルトの名無しさんNGNG
>806
簡単にできるのに、わざわざ複雑なことを教えるなよ。
0817809NGNG
これ以外に「公式」と名のつく本があるの?
0818デフォルトの名無しさんNGNG
しまった、806祭りに乗り遅れた
0819デフォルトの名無しさんNGNG
>817
http://www.hitachi-ia.co.jp/teacdetail.asp?forankcd=ZSYO11&teac=book2
右上に小さく「公式解説書」とあるみたい。
0820デフォルトの名無しさんNGNG
>>815-816
煽ることしかしらねーのか・・・もういいよ
0821美人OLNGNG
あれっ!昨日頼んだのにもう来てる本当に安かったのでびっくりしました

http://www.net-de-dvd.com/
0822809NGNG
>819
ありがとうございます。いずれにしても入門書ですね。
>>19が上級者向けと言ってるのが気になります。
0823デフォルトの名無しさんNGNG
>>814
webクエリは使ったこと無いんだけど Connection の QueryTimeout プロパティ
は使えないのか?DAO経由ではないのか?

ヘタすると永遠に返ってこないんだが。
0824デフォルトの名無しさんNGNG
具体的には、タイムアウトを無限にした非同期接続で StillExecuting を見て
自分でタイムアウト処理すれ。
実はやったことは無いが、そういう機能はとりあえず実装されてる。
0825デフォルトの名無しさんNGNG
エクセルでshell関数を使ってブラウザのSleipnirを起動させてリンクに飛ばしたいのですが、
方法がいまいちわかりません。

Dim ProcID As Integer
' Run Calculator.
ProcID = Shell("C:\Documents and Settings\AAA\My Documents\sleipnir140fb\Sleipnir.exe", AppWinStyle.NormalFocus)

ここまでは分かるのですが、その先が全然わかりません。
たとえば、yahooにリンク飛ばすとしたら、どうしたらいいでしょうか?

0826デフォルトの名無しさんNGNG
>>825
Sleipnir って知らんが
とりあえずコマンドライン引数としてぶち込んどけ

Shell """C:\...\Sleipnir.exe"" ""http://www.yahoo.co.jp/""", vbNormalFocus
0827デフォルトの名無しさんNGNG
>>826
うむ、やってみる。
ありが�d!
0828814NGNG
>>823
>>824
ありがとうございます!試してみます。
0829初心者です。NGNG
シートにある、楕円の図形位置(縦・横ともに)をVBA上の変数に移送したいのですが、どのようにコーディングすればよいでしょうか、すみませんが誰か教えてください。
0830デフォルトの名無しさんNGNG
>>829

Sheet1.Shapes(0).Left
Sheet1.Shapes(0).Top
Sheet1.Shapes(0).Height
Sheet1.Shapes(0).Width
0831826NGNG
>>825
お前マルチだったか
今頃気付いたよ
損した気分。。。
0832質問させてくださいましNGNG
>>804
にて質問したものです・・・わたしの疑問にどなたか答えてくださいまし・・・(;_;)
0833初心者です。NGNG
>>830
どうもありがとうございました。
早速試してみますね。
0834デフォルトの名無しさんNGNG
>>832
スマン 俺はそんな経験無いので・・・

とりあえずシート保護解除して
指先カーソルのまま右クリック→コントロールのプロパティ→サイズ
0835質問させてくださいましNGNG
残念でし・・・

シートの保護を解除したら、指先は十字に戻ってしまうんですよねぇ。
で、保護中に画面全体がボタン化(どこにマウスカーソルをもっていっても指先のまま)
してるので、何のボタンにリンクされてるのかと思ったら、
コピペ元のシート(今は別ファイルになってる)のボタンになってました。
0836質問させてくださいましNGNG
結局新規にシートを追加して、そちらにチマチマとオブジェクトをコピーしたら
>>804 の問題はでなくなりました。
ユーザーさんの誤操作をさけるためにもシート保護を使いたかったもので。

というわけで、自己解決のご報告。
0837PPRNGNG
エクセルとは関係ないですが、

word本文の後ろに、マクロで指定したファイルの文書を追加する方法を教えてください。

よろしくお願いします。
0838デフォルトの名無しさんNGNG
VBからVBAのThisWorkbookに書かれた関数を呼び出せますか?
VBA同士なら大丈夫なのですが…
誰かご存知の方教えてください。
0839デフォルトの名無しさんNGNG
真性の馬鹿です。
http://pc2.2ch.net/test/read.cgi/tech/1023755967/806
帰ってきてください、寂しいです。
0840806NGNG
(・∀・)呼んだー?
0841デフォルトの名無しさんNGNG
>>806
あんたのレスがネタ(にしてもくだらんが)と判断できない低脳ばかりでしたね。
0842806NGNG
うぅぅん、ぼくのレスはねー、真性だよ(・∀・)
Worksheet_Changeを挙げなかったのはシマタ(・A・)と思ったけどねー。

やったことない人と叩きに走りたい人が盛り上がっちゃったんだねー。
0843デフォルトの名無しさんNGNG
>>838
関数なんぞ自作しろ

一応やり方は教えてやる
下はアークコサインのサンプルだ
参照設定で Microsoft Excel *.0 Object Library のチェックを忘れんな

Sub test()

    Const x As Double = 0.5

    Dim objApp As Excel.Application

    Set objApp = CreateObject("Excel.Application")
    With objApp.WorksheetFunction
        Debug.Print "XL : " & .Acos(x) * 180 / .Pi
    End With
    Set objApp = Nothing

    Debug.Print "VB : " & (Atn(-x / Sqr(-x * x + 1)) + 2 * Atn(1)) * 180 / 3.14159265358979

End Sub
0844デフォルトの名無しさんNGNG
>>841
やったことないヤツはすっこんでろよ。
実際できてんだから、煽る前に調べろっつーの。カスどもが。
0845838NGNG
>>843
回答はありがとうございます。
ですが、ちょっと意味が違うんです。

エクセルが数個立ち上がっている状態で、
VBから特定のエクセルだけを落とすといった事をしたかったんです。

それでその特定のエクセルは名前が統一されていないので、
ブックに書き込まれている関数を呼び出して落とせたらなと言う考えなんです。

CallByNameなど試したんですが無理でした。
0846名無しさん@そうだ選挙にいこうNGNG
>>845
常駐させて、起動したEXCEL.exeのプロセスIDを取得しておけばいい
0847デフォルトの名無しさんNGNG
VBAを上達したいなら、まずはExcelの専門家にならなければ無理だ。
0848デフォルトの名無しさんNGNG
847がいいことを言った。
0849デフォルトの名無しさんNGNG
>>838
Const conFunc = "Test" '呼び出したい関数名
Dim xl As Excel.Workbook

Set xl = GetObject("C:TEMP\TEST.XLS")
MsgBox xl.Application.Run("ThisWorkbook." & conFunc & ")

VBA同士なら大丈夫って意味が判らないのだが、 一応これで呼び出せる。
0850デフォルトの名無しさんNGNG
>>849
レスサンクス
VBA同士ならってのはCallByNameでは呼び出せたということです。
今日はもう寝るので明日試して見ます。
ありがとうございました。
0851デフォルトの名無しさんNGNG
ExcelがDDEで用意しているコマンド一覧が知りたいのですがどうすればいいのでしょうか?
今更DDEといった感じなのですが・・・・
0852VBA勉強中NGNG
プログラムが一定時間経過してから動作するようにするにはどうしたらよいでしょう?
例えば、ウイルスの潜伏期間とか。
0853デフォルトの名無しさんNGNG
>>852
Timer
0854VBA勉強中NGNG
プログラムが終了していても、通用しますか?
0855デフォルトの名無しさんNGNG
VBAってタイマー使えたっけ?
0856VBA勉強中NGNG
そういえば、見たことないような。
VBにはあったのに・・・
0857デフォルトの名無しさんNGNG
>>855
あるけど、別のアプリにフォーカスが移動したら無効になったと思う。
最近のバージョンのOfficeなら、APIのタイマーが使えるかな。
0858VBA勉強中NGNG
実はですね、俺、潜伏期間のコード手に入れるためにメリッサのソースを手に入れたんですよ。
けど、よく考えたらメリッサって即発病するから犯人がさっさと見つかったんだって事に気づいたんです。
俺は一体どうすれば?
お袋の誕生日に自動的にグリーティング・カードが出るようにしたいのに・・・
0859デフォルトの名無しさんNGNG
>>858
自宅のパソコン?
ならWindowsの「タスク」使えば。
0860VBA勉強中NGNG
ああ、そうでした!その手があった!
けど、わがままだけど、俺はプログラムでやりたい・・・
家族共有だから、あんま設定変えたくない・・・
0861デフォルトの名無しさんNGNG
>>860
↓こういう手法が参考になると思われ。
http://wibo.m78.com/clip/img/4942.gif
0862VBA勉強中NGNG
・・・無理っぽい・・・俺には・・・できない・・・
俺は負け犬だあああああぁああああぁぁぁぁぁぁぁ!!!(ソリッド・スネーク風に)
0863デフォルトの名無しさんNGNG
>>862
なんかウザくなってきたぞ。
0864VBA勉強中NGNG
すいません。しかし・・・なかで応対・・・ウーーーン
0865デフォルトの名無しさんNGNG
>>858
その日の起動時に表示させるなら、
プログラム冒頭で年月日を調べて、
現在年月日=指定年月日 なら表示。
それ以外なら何もせずに終了。
で、そのプログラムをスタートアップに
登録しておく。
0866デフォルトの名無しさんNGNG
>>864
>>861 のどこが不満なんだ?ちゃんとグリーティングカード出せるじゃん。
0867VBA勉強中NGNG
>>865
それしかなさそうですね。どうも、お世話になりました。有難うございます。
>>861
確かに・・・出せるけど・・・ところで、こういうのって「自動」なのかな?
0868デフォルトの名無しさんNGNG
タイマー、VBAで使えるよ。
別アプリにフォーカスが移っても大丈夫。
ただし、Excelが終了したら当然ダメ。
0869デフォルトの名無しさんNGNG
初めてエクセルVBA書いて動いたのは良いが、
シート1では動くのだが、シート2ではエラーが出る。

シート1用のマクロを作ってしまったみたいだが、
汎用化するにはどうすればいいのでつか?
0870デフォルトの名無しさんNGNG
>初めてエクセルVBA書いて動いたのは良い
動いてねーじゃねーか。悪りーyo!

0871デフォルトの名無しさんNGNG
>>870
シート1では動くんだYO。

入力として、シート1とシート2に同じデータを置いても、
シート2はエラー出ちゃうんだよぅ。

飽くまでシート1のマクロになってしまったようで。厨でスマソ
0872デフォルトの名無しさんNGNG
>>871
コード晒せ
0873デフォルトの名無しさんNGNG
>>872
Sub OrgSort()
Dim hidari As Integer
Dim migi As Integer
Dim haba As Integer
Dim mokuteki As Integer
Dim mokutekiMei As String
Dim situmon As String
Dim taitoru As String

hidari = 1
migi = 1
situmon = "ソートしたい項目を正確に入力してください"
taitoru = "文字列入力"

mokutekiMei = Application.InputBox(Prompt:=situmon, title:=taitoru, Default:="新入会", Type:=2)

Do While Cells(1, hidari) <> ""
haba = 0
Cells(1, hidari).Select

・・・

このCellsで、シート2の場合、エラーが出ます。
0874デフォルトの名無しさんNGNG
Do While Cells(1, hidari) <> ""
haba = 0

Debug.Print "現在のhidari=",hidari  ’ここ追加
Cells(1, hidari).Select


この一行追加して結果教えれ
それと、コードはどこに書いているの?
0875デフォルトの名無しさんNGNG
>>873
漏れは、シート1でも、2でも動く・・・・
セルA1が空白でない場合

A1がセレクトされる
0876デフォルトの名無しさんNGNG
sheet1にコード書いてるアフォ
0877デフォルトの名無しさんNGNG
>>867
間に合ったか?
0878デフォルトの名無しさんNGNG
>>876
アフォなんて書いてねーで、ちゃんとレスつけてやれよ
0879デフォルトの名無しさんNGNG
>>874
すげー亀レスすまそ。別の外回り仕事行ってた。

追加して試したけど、何も変化無かったよ。
そうそう、コードはシート1に書いてる。

これが>>876の言うアフォなのかもしれないが
まあ、その通りなんだろうな・・・どうしたら汎用化できるんだYO!?
0880873NGNG
そうそう、書き漏れたが879=873。

そういや何気なく使ってたDim。もしかして、
javaで言うprivate宣言みたいなもんなのか?
0881デフォルトの名無しさんNGNG
>>880
挿入
標準モジュール

で、そこに書く。
多分、全体をコピーすればいい。
そんで、シート1のは削除
0882873NGNG
>>881
ありが�d
0883デフォルトの名無しさんNGNG
age
0884SeiroggnNGNG
配列を利用してUserFormにある沢山のTextBoxを配列を使って操作したいのですが
途中で 『オブジェクト変数または With ブロック変数が設定されていません』 と表示されて
止まってしまいます。
何か根本的に間違っていると思うのですが正しい方法を教えてもらえないでしょうか?
宜しくお願いします。

UserForm1のコードに入力↓
-----------------------------------------------------
Sub clear2()

Dim TextBox(1 To 16) As Object
Dim i As Integer

TextBox(1) = TextBox1 '★ここで止まってしまう。
TextBox(2) = TextBox2
TextBox(3) = TextBox3
TextBox(4) = TextBox4
    ・
    ・
    ・
TextBox(16) = TextBox16


For i = 1 To 16
TextBox(i).Value = ""
Next

End Sub
-----------------------------------------------------
0885デフォルトの名無しさんNGNG
>>884
オブジェクト変数が設定されていないなら答えは一つだな

つかそのエラー(Error 91)のヘルプに思いっきり書いてあるわけだが
0886デフォルトの名無しさんNGNG
Set
0887SeiroggnNGNG
>>885 >>886

set TextBox(1) = TextBox1

で解決できました。
アドバイスありがとうございました!
0888デフォルトの名無しさんNGNG
しかし、なんでSet文は廃止しなかったのだろうか。
オブジェクトのコピー(ディープ/シャロー問わず)は出来ないよな。
だったら、Setで区別しても意味無いじゃないか。

それとも、俺が知らないだけで、コピーって可能なのか?
0889デフォルトの名無しさんNGNG
超初心者(MOUS一般程度)にもかかわらず、それだけで
何でもやらせようとするおじさん達のおかげで、なぜかVBA組むことに…。

申し訳ないんですが、教えてください。

特定のセルなりなんなりにファイル名をいれて、ファイルサーバから
該当ファイルを呼び出してくるようなものって、どうすればいいんでしょう?
その後やりたいことはなんとなくできたんですが(でも汎用化しきれてない)
それがなんとなくできなくて…。

宜しくお願いします。
0890デフォルトの名無しさんNGNG
シート200枚くらいを管理するやつ作ったけど重くて使い物になりまへん(泣)
0891デフォルトの名無しさんNGNG
http://endou.kir.jp/betu/linkvp/linkvp.html
0892デフォルトの名無しさんNGNG
>>889
>>特定のセルなりなんなりにファイル名をいれて、ファイルサーバから
>>該当ファイルを呼び出してくるようなものって、どうすればいいんでしょう?

セルからファイル名を読み取る方法がわからないのか、それともファイルの呼び出し方がわからないのか、どっち?
あと、「呼び出してくる」というのは、どういう操作を指してるの?
0893デフォルトの名無しさんNGNG
>>892
>セルからファイル名を読み取る
セルの文字列を読み取る。の間違いだろ
0894デフォルトの名無しさんNGNG
>>892、893

わからないのはファイルの呼び出し方です。
呼び出してくるというのは、保存してあるファイルを探してきて
開く、という操作です。
文字列の読み取りはわかりました。

わかりにくい書き方してごめんなさい。

1回の処理件数が多い(100枚前後)ので、ファイルを開くのも
自動化したいと思いました。

よろしくお願いします。
0895デフォルトの名無しさんNGNG
日本語がわかりずらいYO!
0896デフォルトの名無しさんNGNG
Worksheet.open()したいのか?
0897デフォルトの名無しさんNGNG
ファイルを開く
1.目の前にウィンドウを開く
2.ファイルシステムオブジェクトでファイルストリームを開く
3.Worksheetオブジェクトに読み込む
普通は2か3だがあなたは1を指してないか?
0898デフォルトの名無しさんNGNG
そもそもこのスレって素人向け?
0899 NGNG
漏れも偉そうなことはあまり言えないが、少なくとも人に質問する際に、
自分が何をしたいのか、どこで行き詰っているのかぐらいは整理してか
ら相談するようにしているぞ。

自分で「わかりにくい書き方してぼめんなさい」と言う前に整理したらどうYO?
0900デフォルトの名無しさんNGNG
>>899
それに、自分で調べてやってみて、どうしてもうまくいかずに引っかかる
ところがあって質問、じゃなくて仕事丸投げだもんなぁ…
0901889NGNG
すみません。


逝ってきます…。
0902デフォルトの名無しさんNGNG
98SE上のXL2002-SP2で、「グラハム」って入ったワード書類を
「c:\test.doc」としておいて、以下のコードで文字列置換をしようと
すると、おだぶつ、で止まるんですが、なんかヘマしてますかね。
詳しい方、おねがいします。

Delphi4で同じことさせると、うまくいくんですけど・・・

Sub test()
Dim oW As New Word.Application
Dim oWD As Word.Document
oW.Documents.Open FileName:="c:\test.doc"
Set oWD = oW.ActiveDocument
With oWD.Content.Find
.ClearFormatting '<-おだぶつ
.Execute findtext:="グラハム", replacewith:="おいスティーブ", Replace:=wdReplaceAll
End With
oWD.SaveAs FileName:="c:\test2.doc" '別名で保存
oWD.Close
oW.Quit
Set oWD = Nothing
Set oW = Nothing
End Sub
0903デフォルトの名無しさんNGNG
ちなみに2K上のXL97だと、動くんですよ。なんでかな。
0904902NGNG
OfficeXP最初からインストールやり直したら
直ってしまった。スレ汚し、スマソ。
0905デフォルトの名無しさんNGNG
質問です。
例としてですが、以下のようにVBAを書いてみました。
-------------------------------------------
i = 1
For x = 0.1 To 0.7 Step 0.1
Cells(i, 1) = x
i = i + 1
Next
end sub
-------------------------------------------
xが0.7になるまで、A列に書き出せ、というような意味だと思います。
ですが、実際に動かしてみると、0.6までしか書き出しません。
試しに、0.7の部分を変えていくつかまわしてみたのですが、結果は以下の通りになりました。
0.5 → 0.4 まで書き出し
0.6 → 0.5 まで書き出し
0.7 → 0.6 まで書き出し
0.8 → 0.8 まで書き出し  ←正常に終了?
0.9 → 0.9 まで書き出し

このようなことから、0.7以下の場合に何か起こってしまうのかと思ったのですが、
どこか間違い等があるのでしょうか。
よろしくお願い致します。
0906デフォルトの名無しさんNGNG
>>905

それはDOSの大昔っから抱えてる、誤差のせいではなかろうか。
ていうか、x の型はなに?
0907デフォルトの名無しさんNGNG
>>906
Dim x As Double
Dim i As Integer

としていました。
これは昔からある問題なんですか?
パソコンに疎いもので、ぜんぜん知らなかったです。
0908デフォルトの名無しさんNGNG
>>907

Single,Doubleはデータを2進数で格納するので、小数点の扱いがニガテなの。
1は2の0乗、2は2の1乗、3は2は2の1乗+2の0乗、4は2の2乗・・・
でも0.1を正確にあらわせないので、近似値になってしまうの。
だから、0.1に0.1ずつ足せば0.1、0.2、0.3、0.4・・・
となりそうだけど、ちっちゃい誤差が溜まってなかしくなるです。

じゃあどうすればいいかっていうと、例で使われた程度の範囲なら、
Currencyは都合がいいです。小数点以下4桁までしか扱えませんが、
この桁の範囲で計算するぶんには誤差は生じません。

どうしてかっていうと、Currencyは実は見せ掛けの小数というか、
内部では10000倍して整数として扱っているの。
例えば0.0001は、パソコン内部では1として扱い、
小数点の位置だけをずらして最終的に小数にしてるから。
0909デフォルトの名無しさんNGNG
×・・・溜まってなかしくなるです
○・・・溜まっておかしくなるです

いい気になって書いてるうちにミスりました。
練炭で逝ってきます・・・
0910905,907NGNG
>>906,908
ありがとうございます!
この程度の計算では、single,doubleは向いていないみたいですね。
Currencyにしたら計算できました。
これからもよろしくお願い致します。
0911デフォルトの名無しさんNGNG
・これからもよろしくお願い致します。

・これからも、わからないことは調べずに貴方たちに任せます。
0912デフォルトの名無しさんNGNG
直接VBAには関係ないのですが、
エクセルファイルが開けなくなってしまいました。
何か対処方法はありませんか?
こういう事って良くあるんでしょうか?
(XPです)

・作業過程と症状
1.AというエクセルファイルでVBAプログラムしていた。
2.その状態でBというエクセルファイルを開いたらフリーズしてしまった
3.エクセルを強制終了
4.次にAのファイルを開くと、シートの表示はされるが、カーソルが砂時計表示のまま固まってしまう。
  (タスクマネージャでみると、エクセルがCPUの98%位を使用したまま)
ちなみに、AもBも20M位のファイルです
0913デフォルトの名無しさんNGNG
>>910
この程度の計算に向いてないというよりは、昔っから体験してることの
延長線上みたいなもんだよ。
電卓で10÷3×3=とやっても10にならないのとほぼ同じ。
小数点以下に精度を要求する計算でも、下のほうの桁はアテにならないからね。

>>911
こーいうのは調べてもわかりにくいよ。
なんせ本人には理屈の見当がついてないわけだから。
0914デフォルトの名無しさんNGNG
>>912

俺も以前似たような質問をしたが放置された。

まずエクセルのセキュリティ設定を中か高に変える。
↓
マクロつきブックを開こうとすれば警告が出るのでマクロを無効にする。
↓
開いたらVBエディタを開いてマクロがクサッてないか確認
↓
別名で保存
0915912NGNG
>>914
ありがとうございます。
参考にしてみます。

何か、前にも同じ様な現象が起きた気がします。
微妙に信用できないエクセル
0916デフォルトの名無しさんNGNG
漏れ的にも今イチ信頼できないエクセル。

バックグラウンドコンパイルに問題があるのではないかと、
保存する前には自分でコンパイルするようにしてみた。

あと、編集を続けてるとMSIME2000が「変換できなくなった」と言ってくることがある。
編集を続けますか?と聞いてくるので当然のように「はい」を選ぶと落ちる。
落ちたら、>>912になる確率が高い。
だから、「いいえ」を選ぶようにしてる。

いったいなんなんだか・・・
0917デフォルトの名無しさんNGNG
そもそも『20M』位のブックって・・・そんな、事も無げに。
0918デフォルトの名無しさんNGNG
65MBのブックてのもあるぞぃ
サッサとAccessに移行しろって感じ。

・・・そして、Accessでも謎の現象に見舞われる、と。
0919デフォルトの名無しさんNGNG
案外、ESCボタン押したら止まったりして。つまり単にマクロ実行中。
0920デフォルトの名無しさんNGNG
>>919
そう思うんだけど、止まったタメシがないんだよなぁ。

あと、何十MBにもなると、再計算に30分(@Athlon1GHz)以上かかったりして鬱。

スクリーンセーバーや壁紙チェンジャーとかのせいで再計算が発生したら
止めようがない(まれに止まってくれるけど)。ただひたすら待つのみ。
数MBになると思われる時点で、Accessを使うよう方針変更すべきなんだな。
0921山崎渉NGNG
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉
0922デフォルトの名無しさんNGNG
保守
0923_NGNG
http://homepage.mac.com/hiroyuki43/hankaku01.html
0924デフォルトの名無しさんNGNG
ExcelVBAでシートの各レコード毎にコマンドボタン付けて、それを押したら詳細シート表示。
って感じでシート管理するヴォケみたいな思い付きでを続けてたらあっという間にシート180枚超えました。
Accessと連携してなんとかならないものかと考えましたが、結局、レコードの詳細表示を
保持するのはExcelシートじゃないとダメなんです。詳細表示シートは図とか使ってますし。
何か良い方法ないでしょうか?このままでは来月中にシート開かなくなります。
0925デフォルトの名無しさんNGNG
表示する詳細シートを同じブックに作る必要は無いと思うんだが
0926デフォルトの名無しさんNGNG
>>924
詳細シートのそれぞれを別のブックにして、
コマンドボタンから該当のブックを呼び出せば?
ファイルの数が多くなるけど、
ばかでかいファイルを読み書きするより、
軽くなるのではないかと思います。
0927924NGNG
10件1Bookくらいに分割する方法はやってみました。
結果、これってカッコ悪くないですか?
0928デフォルトの名無しさんNGNG
無駄に重いブックを作るよりはスマートだろう
0929デフォルトの名無しさんNGNG
ここってにちゃんねると思えないほど熱いんだが
次ぎスレ用にVBAに関するQ&A集のテンプレだれか作ってくれ
おながい
0930デフォルトの名無しさんNGNG
>>929
・質問する人は可能な限り具体的に書いてね。
・コード(プログラム)を晒すと、なおヨシ。
・質問を小出しにすると、大抵遠回りになります。
・Excelのバージョン、OSのバージョンも書くとレスが付きやすい。
・回答がなくてもキレないで。
・分かる人はできるだけ回答して下さいませ。

こんなんで、いいんじゃない?

Q&Aは、無理だろ・・・
0931デフォルトの名無しさんNGNG
>>929
> 次ぎスレ用に
「俺様用に」と言いたいんだろ?白々しく「次スレ用」なんて言わないでおくれ。
0932 NGNG
>>930
後、
・書き込む前に推敲してわかりやすい文章に汁。
も追加しておいた方が。

0933デフォルトの名無しさんNGNG
>>924
データをAccessに追い出して、毎回図を生成してはダメなのか?
あ、図=グラフとは限らんか・・・

詳細ボタンを押せばパッとひらく今(想像)よりはレスポンスは落ちるが、
ブックが開くのも速くなるしシート数も減ってスマートになると思うんだが・・・
0934デフォルトの名無しさんNGNG
「テンプレ案」

・質問する人は可能な限り具体的に書いてね。
・コード(プログラム)を晒すと、なおヨシ。
・質問を小出しにすると、大抵遠回りになります。
・Excelのバージョン、OSのバージョンも書くとレスが付きやすい。
・回答がなくてもキレないで。
・分かる人はできるだけ回答して下さいませ。
・書き込む前に推敲して、回答する人にわかりやすい文章に汁。
0935デフォルトの名無しさんNGNG
題名:

OS:
EXCELのバージョン:

本文:

なんてのを2辺りに張っといて、使ってもらえば?

0936デフォルトの名無しさんNGNG
VBA最近始めたけどかなり面白いね!
結構何でもできるし。
これ覚えたらアクセスなんていらなくなりそうだよ。
てか、アクセスの機能のうちでエクセルVBAで実現できないことってあるのか?
0937デフォルトの名無しさんNGNG
>>936
いろいろあるが、Excelは65535行までというのが一番いたい。
0938デフォルトの名無しさんNGNG
65536だった、スマソ。
0939デフォルトの名無しさんNGNG
>>936
ExcelとAccessじゃ、そもそも用途が違うからね。
VBAやってくうちにExcelの限界が見えてくると思うよ。
0940デフォルトの名無しさんNGNG
Accessがいらなくなるって・・・・オマエ・・・・
0941デフォルトの名無しさんNGNG
Excelの限界って、具体的にはパフォーマンスのことですか?処理はいくらでも書ける気がします。
原則的に自動マクロを編集する方向でコーディング行うと、間違った方向で結果が出ることはないです。
作業効率UPの基本は「手順改善」「自動化」にあるので、「Excelでこれをやりたい!」と考えるよりも、
「今この手順でやっているが、これを自動で行う」とか考えた方がVBAとして良い結果が得られます。

ExcelVBAやってて助かることは出力を簡単に整形できること。こんなに使える「ツール」はないと思います。
なんでもできるExcelだけど、大量なドキュメントを作成/編集するときはWordのサブ文書等に頼りますが。


0942デフォルトの名無しさんNGNG
>VBA最近始めたけど
もう手遅れだって......
0943デフォルトの名無しさんNGNG
>>941
便利な世の中になったもんだ。
0944デフォルトの名無しさんNGNG
>>942
そんなことないぞ。
0945デフォルトの名無しさんNGNG
たぶんこの人>>941は、数日もしないうちに
また書き込んでくるであろう、疑問符をいっぱい抱えて。

Excelはね、たくさんコード書いてると、ヘンな動きをしだすんだよw
0946動画直リンNGNG
http://homepage.mac.com/hitomi18/
0947941NGNG
コンボボックスの挙動が変です。
Bookオープン時に取得しているのですがクリックすると描画がループします。
なぜでしょうか????????????????->->->->->->->>945
教えてください。
0948デフォルトの名無しさんNGNG
>>941
なんか違うと思う。
おれもlVBAをかじりたての時はそう思ったけど。

Excelで処理すべき作業なのか、他のアプリで処理すべき作業なのか、
その見極めができるようになったら理解できると思う。

おれも最初は「Excel+VBA」が魔法のツールと錯覚し、何でもExcelで
処理してたな・・・
0949デフォルトの名無しさんNGNG
おまいらの職場ではOfficeにちゃんとサービスパック当ててますか?
俺のとこは管理者がまぬけなのか、放置されてます。
おかげでMSのバグ回避用のコードが汚すぎです(号泣
0950デフォルトの名無しさんNGNG
最新のサービスパクてどれだっけか
0951デフォルトの名無しさんNGNG
質問です。フォーム上の複数のテキストボックスのExitイベントに
同じプロシージャを実行させるコードを以下のように書きました。
--------------------------------------------------------
Private Sub textbox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)

Call サブルーチン(1)

End Sub

Private Sub textbox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)

Call サブルーチン(2)

End Sub

(以下省略)
--------------------------------------------------------
コントロールの数だけイベントプロシージャを記述すれば一応動作
しますが、数が多すぎて(20個あるので)あまりに非効率のような
気がします。このようなコードを一つにすっきりさせることは
可能でしょうか?よろしくお願いします。

0952デフォルトの名無しさんNGNG
>951
たしかVBAはコントロール配列を作れなかったから無理
0953951NGNG
>952
やはりそうですか。
Controls("Textbox" & i) のような擬似コントロール配列も
このような場合には使えないし。どうしてVBと共通の仕様に
しないのやら・・・
0954デフォルトの名無しさんNGNG
コントロール配列ってなんでつか?なにができるのでつか?
0955デフォルトの名無しさんNGNG
>>954
文字通り、コントロールの配列です。

同じ属性を持つコントロールを配列で管理すれば、コーディングの時に何かと
便利です。

例えばコントロールが10個あった場合、VBAの場合10個全てにユニークな
名前を付ける必要がありますが、VBの場合はコントロールを配列にすることで、
一つの名前で扱うことができます。

これにより、本来10個分のコードを書く手間を省略する事が可能になり、コードの
メンテナンス性が向上します(使い方によっては逆になる場合もある。そのへんの
事情は配列変数と同様)。

同じ属性のコントロールを一元に扱えるということは、イベントもまた一元に扱える
という事で、例えばコントロール配列Aに定義したイベントは、その要素である
A(1)、A(2)…に対しても、同じように作用します。952の回答は、これがVBAでは
出来ないという事を意味しているのです。
0956デフォルトの名無しさんNGNG
VB.NETでは無くなったけどね
0957デフォルトの名無しさんNGNG
>>956
へー、じゃぁどうやるの?ってすれ違いかな
0958デフォルトの名無しさんNGNG
Visual Basic .NET と Visual C# .NET におけるコントロール配列の作成
http://www.microsoft.com/japan/msdn/vs/general/vbtchCreatingControlArraysInVisualBasicNETVisualCNET.asp
0959デフォルトの名無しさんNGNG
>>951
調べてみたところ、ユーザー定義クラスを利用すれば出来ないこともないらしい。
以下テキストボックスが5個の場合の例。

'UserFormのモジュールに書くコード
Option Explicit
Option Base 1

Dim myClass1(5) As New Class1
Private Sub UserForm_Initialize()
  Dim myTextbox As New Collection
  Dim i As Integer
  With myTextbox
    .Add Item:=TextBox1
    .Add Item:=TextBox2
    .Add Item:=TextBox3
    .Add Item:=TextBox4
    .Add Item:=TextBox5
  End With

  For i = 1 To 5
    Set myClass1(i) = New Class1
    With myClass1(i)
      .txt = myTextbox(i)
      .Index = i
    End With
  Next
End Sub
0960デフォルトの名無しさんNGNG
'Class1モジュールに書くコード
Option Explicit

Private WithEvents myTxt As MSForms.TextBox
Private idx As Integer
Public Property Get txt() As MSForms.TextBox
  Set txt = myTxt
End Property
Public Property Let txt(ByVal txtNew As MSForms.TextBox)
  Set myTxt = txtNew
End Property
Public Property Get Index() As Integer
  Index = idx
End Property
Public Property Let Index(ByVal idxNew As Integer)
  idx = idxNew
End Property
Private Sub myTxt_Change()
  MsgBox "textbox(" & idx & ")を変更しました"
End Sub

このコードを使うと、テキストボックスを変更した際にChangeイベントが発生し、
メッセージボックスにテキストボックスコレクションのインデックス値が表示される。

ただ自分が試した限りでは、何故かExitイベントが発生しないのだが、原因は
私の力不足により不明です。申し訳ない。
0961デフォルトの名無しさんNGNG
Javaでクラスに慣れ親しんだ後に、VBでクラスを組むと気持ち悪い。
中途半端だし。更に、VBAはCollection使わないと凝ったことは何一つできないという罠。
可変長配列の代替としてCollection使うのは良いことだ。可読性UPするしな。
0962預言者NGNG
http://life.fam.cx/mfg/
0963951NGNG
>>959
おお、これなら確かにちゃんと動作しますね。
しかしなぜExitイベントだと動作しないのか・・・謎です。
今までクラスモジュールは触ったことがなかったのですが、
使いこなせれば色々と便利なことができそうですね。
959さん、どうもありがとうございました。
0964デフォルトの名無しさんNGNG
>>963
VB/VBAのクラスはオブジェクト指向のクラスとしては足りない機能がおおいけど、
むしろイベント制御用として割り切って使うこともいいんでは
0965デフォルトの名無しさんNGNG
Excel/VBAでコードを書いてて、ちょいとわからなくなったことがあったので
ヘルプを見ようと思って開いたら、すべての項目がなくなってました・・・
これは、再インストール以外に解決策はあるのでしょうか?
0966デフォルトの名無しさんNGNG
>>965
俺だったら真っ先に再インストールするね。
何か事情があるなら無理かも知れんけど。
0967デフォルトの名無しさんNGNG
質問です。
Excel2000で印刷の用紙サイズをB4やB5に設定するとき
PageSetup.PageSize に xlPaperB4 または xlPaperB5 と設定しますが、
OKI ML2030N ではエラーが発生します。

マクロの記録で調べたところ、OKI ML2030N では
B4/B5の設定値が xlPaperB4 や xlPaperB5 ではなくて
122 と 127 になっていました。
この値はプログラムからはどのようにして調べるのでしょうか?

0968デフォルトの名無しさんNGNG
はじめまして、VBA3日目の初心者です。

====================
Sub

A()

End Sub
--------------------
Function A
     ???
End Function
=======================

関数の???ところでエクセルを終了させずにマクロ全体から抜ける方法がわかりません。
今のところ、関数AからBool値をSubに戻して判別してるんですが、
何か便利な関数があるはずだと思うのです。
ヘルプ探したのですが、見つかりませんでした。
もしよろしければおしえていただけませんか?よろしくお願いします。
0969デフォルトの名無しさんNGNG
>>968
Exit Function
ちゃんとヘルプ嫁
0970デフォルトの名無しさんNGNG
どうもです。
いやー、てっきりExit Functionでは関数から抜けるだけだと思ってました。
マクロからも抜けれるんですね。
早速試してみます。
0971デフォルトの名無しさんNGNG
>>968

やっぱだめでした。関数から抜けるだけでした。
探してるものは、いわばFunctionの中でつかえる、Exit Subなんですが。
0972969NGNG
>>971
End

マクロ全体から抜けるなどという概念がなくてな
0973デフォルトの名無しさんNGNG
>>972
思ったとおりにいけました。どうもありがとうございました。
0974デフォルトの名無しさんNGNG
Range の CopyFromRecordset メソッドで Range のある Worksheet では
なくて ActiveSheet の Range の位置の NumberFormatLocal が変わって
しまうというバグを見つけたんだが、こんなデカいバグがパッチ当てられて
いないほど DAO って使われてないのか?
0975一応テストコードNGNG
Sub test()
Dim dbnam As String
dbnam = ThisWorkbook.FullName & ".dbo"
If Dir(dbnam) <> "" Then Kill dbnam
Dim db As Database
Set db = DBEngine.CreateDatabase(dbnam, dbLangGeneral)
Dim table As TableDef
Set table = db.CreateTableDef("data")
table.Fields.Append table.CreateField("date", dbDate)
db.TableDefs.Append table
db.Execute "insert into data values ('2003/06/01')"
db.Execute "insert into data values ('2003/06/02')"
db.Execute "insert into data values ('2003/06/03')"
Dim rs As Recordset
Set rs = db.OpenRecordset("select * from data")
Dim ws As Worksheet
Set ws = ActiveSheet
Dim wsData As Worksheet
Set wsData = ThisWorkbook.Worksheets.Add
ws.Activate
ws.Cells(1, 1).NumberFormatLocal = "G/標準"
ws.Cells(1, 2).NumberFormatLocal = "G/標準"
ws.Cells(1, 3).NumberFormatLocal = "G/標準"
wsData.Range("a1").CopyFromRecordset rs
Application.DisplayAlerts = False
wsData.Delete
Application.DisplayAlerts = True
Debug.Print ws.Cells(1, 1).NumberFormatLocal
Debug.Print ws.Cells(1, 1).NumberFormatLocal
Debug.Print ws.Cells(1, 1).NumberFormatLocal
End Sub
0976デフォルトの名無しさんNGNG
あ、バージョンは97と2000と2002 (10.2614.2625) で確認。

参った・・・一応、CopyFromRecordset の実行中だけ Activate でデータの
シートを ActiveSheet にしたら問題は回避できることは確認した。
でも、今まで気付かずに使いまくり・・・
0977デフォルトの名無しさんNGNG
あー確かに。

仕様と言い張るにはちょっと苦しい動作ですね。
0978デフォルトの名無しさんNGNG
なんかね、曜日を求めるプログラムってよくあるじゃないですか
でね、俺もちょっとやってみようと思ったんだけどサンプルのソース通りにコーディングしたのにコンパイルできないんですよ
↓のソースってどこが間違ってるんですかねぇ〜
ちなみにエラーメッセージは"Sub または Functionが定義されていません"だって。何のことやら
0979デフォルトの名無しさんNGNG
やべぇ、ソース長すぎて書けないんで分割して書きます
0980デフォルトの名無しさんNGNG

Private Sub CommandButton1_Click()
Dim mt(12) As Integer
mt(1) = 31: mt(2) = 28: mt(3) = 31: mt(4) = 30
mt(5) = 31: mt(6) = 30: mt(7) = 31: mt(8) = 31
mt(9) = 30: mt(10) = 31: mt(11) = 30: mt(12) = 31
y = Val(TextBox1.Text)
m = Val(TextBox.Text)
d = Val(TextBox.Text)
If (y Mod 4) = 0 And (y Mod 100) <> 0 Or (y Mod 400) = o Then
mt(2) = 29
Else
mt(2) = 28
End If
zure = y + (y - 1) / 4 - (y - 1) / 100 + (y - 1) / 400
0981デフォルトの名無しさんNGNG
days = 0
For k = 1 To m - 1
days = days + mk(k)
Next k
week = (zure + days + d - 1) Mod 7
If week = 0 Then
TextBox4.Text = "Sunday"
ElseIf week = 1 Then
TextBox4.Text = "Monday"
ElseIf week = 2 Then
TextBox4.Text = "Tuesday"
ElseIf week = 3 Then
TextBox4.Text = "Wednesday"
ElseIf week = 4 Then
TextBox4.Text = "Thursday"
ElseIf week = 5 Then
TextBox4.Text = "Friday"
ElseIf week = 6 Then
TextBox4.Text = "Saturday"
Else
TextBox4.Text = "Error"
End If
End Sub
0982デフォルトの名無しさんNGNG
>>978
どこでエラーが出ているのかな

オレだったらこんなコードにする。
Private Sub CommandButton1_Click()
Dim strWeekday()
strWeekday = Array("", "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat")
If IsDate(Me.TextBox1.Value) = False Then
MsgBox "日付が誤っています。"
Me.TextBox1.SetFocus
Exit Sub
End If
If (Me.TextBox1.Value <> Format(Me.TextBox1.Value, "yyyy/mm/dd")) And _
(Me.TextBox1.Value <> Format(Me.TextBox1.Value, "yyyy/m/d")) Then
MsgBox "日付が誤っています。"
Me.TextBox1.SetFocus
Exit Sub
End If
MsgBox strWeekday(Weekday(Me.TextBox1.Value))
End Sub
0983デフォルトの名無しさんNGNG
>>978
日本語のエラーメッセージもわからんのか?
0984↑NGNG
死ねよ
0985デフォルトの名無しさんNGNG
>>984
正論だろ

親切にmkという関数は定義されていませんよと反転付きで教えてくれてるのに
0986デフォルトの名無しさんNGNG
>>985
どこを直せばいいのかきちんと書け
そして死ね
0987デフォルトの名無しさんNGNG
だから反転してるところだって
0988デフォルトの名無しさんNGNG
どう直せばいいのかと聞いてるんだ
死ねよ低脳
0989デフォルトの名無しさんNGNG
>>978
まず、先頭に以下のコードを追加してコンパイルしろ
Option Explicit
0990デフォルトの名無しさんNGNG
変数mとdに同じテキストボックスの値を代入したり、
y Mod 400と変数oを比較したり、
突っ込みどころ満載だな、釣りですか?
0991 NGNG
>>988
えっれーでかい態度 (w
0992デフォルトの名無しさんNGNG
>>989
コンパイルエラー 修正候補:ステートメントの最後だとよ、どういうことだ?
いい加減なことばっか教えてんじゃねぇよ、死ねよ

てかね、釣りも何も俺は見本通りにソース書いただけなんですよ
文句言うならそいつに言え
さぁ、引き続きサポートしろよ
0993デフォルトの名無しさんNGNG
>>988
じゃあヒントだけ教えてやろう。

"Sub または Functionが定義されていません"というメッセージはまあそのまんまの
意味なんだが、未定義のSubやFunctionを使った覚えがないのにこのエラーが
出るということは、単なるタイプミスの可能性が濃厚だ。

というわけで、上で宣言している配列変数あたりが疑わしい。つかそれだ。
0994デフォルトの名無しさんNGNG
てかOption Explicitって先頭に追加したら赤くなったぞ
いい加減なことばっか教えてんじゃねぇよ、死ねよ
0995デフォルトの名無しさんNGNG
てかタイプミスなんてあり得ません。
何万回も確認したけど俺は間違ってないからな
てかプログラミング講座気取りのサイトでも間違ったソース載っけてるバカが結構多いからな
このソース乗せてる奴もその一人なんだろうな
死ねよ
0996デフォルトの名無しさんNGNG
オラ、俺が次スレ立ててやったぞ
貴様ら、こっちへ来い↓
http://pc2.2ch.net/test/read.cgi/tech/1055153917/
0997デフォルトの名無しさんNGNG
ここはバカと一緒に1000まで埋めるスレとなりました
0998デフォルトの名無しさんNGNG
>>996
別にいいのに
0999デフォルトの名無しさんNGNG
てか一年かかってようやく1000かよ
とんだ過疎スレだな、死ねよ
1000デフォルトの名無しさんNGNG
俺が1000げっと
死ねよ
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。