VBAについて Ver.4.0
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1078187762/
0002デフォルトの名無しさん
NGNG0003デフォルトの名無しさん
NGNG0004デフォルトの名無しさん
NGNG0005デフォルトの名無しさん
NGNGExcel2002で早速質問なのですが、
今Sheet1がアクティブになっている状態で、Worksheets("Sheet2").Range("A1").Select
のコードを実行しようとしたのですが、「RangeクラスのSelectメソッドが失敗しました」
とエラーが出ます。
Sheet2は存在する状態にも関わらず、なぜSelectできないのでしょうか。
ご回答いただければ幸いです。
0006いけめん太郎
NGNG僕も質問させていただきますと、
Excel2000にて、セル範囲の各値を、
10項目(セル)ずつ、スペースを一つずつ空けてテキスト形式にて
保存する方法を探しています。
1 1 1 1 1 1 1 1 1 1 **項目
2 2 2 2 2 2 2 2 2 2 ** (値)
のように、右端に項目名を書き込みし、
その下の段の右端にその項目の値を書き込みたいと思っています。
セルの値のところ 1 1 1 1 の辺りは、一行の値を書き込み、
右端に一項目ずつ、見やすく記入したいと思っています。
Cells() で指定し、Print()にてファイルに書き込むと、
大きなタブが入ってしまいます。
セル範囲の参照は、ベタ打ちでもOKです。
ご意見よろしくお願い致します。
0007デフォルトの名無しさん
NGNGX = 10
X = X + 20
Range("A1").Value = X
End Sub
基本的なことが・・・・反映することができません〜
0008デフォルトの名無しさん
NGNGPrint → Write でどう?
>>7
質問の意味がよくわからないけど、単に呼び出してないだけとか。
0009デフォルトの名無しさん
NGNGActiveなシートしかSelectできないです。
ちなみにValue取得はActiveでなくてもできます。
0010デフォルトの名無しさん
NGNGうちでは問題なくできました。(Excel2000)
0012デフォルトの名無しさん
NGNG0013デフォルトの名無しさん
NGNG少し、違うかもしれないが、
1 セルの幅を数値に合わせる。
2 テキスト(スペース区切り)*.prnで保存
0014marukome
NGNG<アップロードの処理>
エクセルVBAで、あるサイトをIEで開く処理まではやっとできたのですが、
そのサイトの(テキストボックス?)にローカルのパスとファイル名を
入れて、ボタンを押すという作業をさせたいと思います。
ソースを見てみたのですが、どうもPHP3とか書いてあるのですが、
よく分かりません。
何かヒントなりあればよろしくお願いします。
0015marukome
NGNG困ってます。不安定なので、できればなんとかならないかと
0016デフォルトの名無しさん
NGNGOption Base 1をいれたらエラーがでるのです。
エラーをださない方法ありますか?
0017デフォルトの名無しさん
NGNGOption Base 1ステートメントはモジュールの先頭でしか宣言できなかったと思う。
なので、End Subの後に入れるのは不可能っぽいです。
0018デフォルトの名無しさん
NGNGご返答ありがとうございます。
Option Base 1を先頭にしてみます。
0019デフォルトの名無しさん
NGNGwith ie.Document.Forms(0)
.Item("テキストボックスのName").Value = 値
.Submit
end with
細かいところは、目的のフォームに合わせて変えてくれ。
0021デフォルトの名無しさん
NGNG[ファイル]→[インポートとエクスポート]→[ファイルへエクスポート]→[MicrosoftExcel]
としてエクスポートしたExcelファイルを開くと、
"内容"の列に改行文字(?)として"・"が表示されることがあります。
これを削除したくて、次のようなソースを書きましたが、
依然として"'・"と表示される、文字のようなもの(選択できません)が残ります。
どうやったらExcel上で消えるんでしょうか?
Sub ToNoLf()
'改行コード削除
Cells.Replace What:="" & Chr(10) & "", Replacement:="", _
LookAt:=xlPart, SearchOrder:= xlByRows, MatchCase:=False, _
SearchFormat:=False, ReplaceFormat:=False
End Sub
002221
NGNG上に書いたマクロを実行すると、"・"が減るんですが、"・"が
2つあるセルは1つだけになるということです。
文字コードに弱いのでどなたかお願いします。
0023デフォルトの名無しさん
NGNGOutLook持ってないから確かめられないけど、
改行コードがCR+LFなんじゃないかな?
そうだったらCRも同じ方法で除去すればOK
文字コードはChr(13)
まとめて、vbCrLfでもいけそうだけど、環境依存になるかも。
あと、空白セルは見ても仕方ないので、CellsよりUsedCellsとか
の方がよさげ。
0024デフォルトの名無しさん
NGNG最後のレコードの後に灰色の隙間が3レコード分くらい空いてしまう
(表形式フォームをサブフォームに組み込むとデフォルトでこうなると思います)
のですがこれを消すことは出来ないでしょうか?
分かりにくいかとは思いますがご教授お願い致します。
0025デフォルトの名無しさん
NGNG全然VBAじゃない気がする。
アクセスと見て、こちらに誘導↓
http://pc5.2ch.net/test/read.cgi/bsoft/1089812359/l50
0026marukome
NGNGせっかくヒント与えていただいたのに、
すみません、できませんでした。
↓がExcel側のコードです。実際細かいところでつまづいていると思います。
よろしくご教授お願いします。
-----------------------------------------
Dim objIE As Object
Set objIE = CreateObject("InternetExplorer.application")
objIE.Visible = True
objIE.Navigate "https://***/*****.php3?action=4"
Do While objIE.Busy = True
DoEvents
loop
-----------------------------------------
002721
NGNGできました!ありがとうございます。
> あと、空白セルは見ても仕方ないので、CellsよりUsedCellsとか
の方がよさげ。
仮ソースなので自動記録のマクロをいじっただけなんです。。。
0028marukome
NGNG下記がソースです(一部伏字)
----------------------------------------
<form action="*****.php3" method="post" enctype="multipart/form-data">
<input type="hidden" name="action" value="1">
<tr>
<td>
<input type="file" name="***file" value="" size="20">
<a href="Javascript:openSubWindow('/guide/?m=n&s=18')"><img src="****.gif" width="16" height="14" border="0" align="absmiddle" alt="○○な○○"></a>
</td>
</tr>
<tr>
<td align="center"><input type="submit" value=" アップロード "></td>
</tr>
</form>
----------------------------------------
0029デフォルトの名無しさん
NGNGDim Wakusei() As String
ReDim Wakuswi(1)
Wakusei(0) = "水星": Wakusei(1) = "金星"
ReDim Preserve Wakusei(3)
Wakusei(2) = "地球": Wakusei(3) = "火星"
End Sub
これを実行するとエラー9インデックス有効範囲ではありません
となるのですが、どうすれば解除することができるのでしょうか?
0030デフォルトの名無しさん
NGNGネタにマジレスかもしれんが、
Wakuswi(1)→Wakusei(1)
マジボケだったら、option Explicit をおすすめする。
0031デフォルトの名無しさん
NGNGご返答ありがとうございます。
間違い訂正してもエラーが出ます
option Explicit をつければなおるのですか?
先頭につけるものなのかな〜
0033デフォルトの名無しさん
NGNG0034デフォルトの名無しさん
NGNGoption base 1ステートメントは宣言してないでしょうか。
もししていたなら、Wakusei(0) = "水星"でエラーになります(要素数0は存在しないため)。
考えられる原因としたらこのぐらいかな。。
他にはモジュールにsubプロシージャなどは記述していませんか?
0035デフォルトの名無しさん
NGNG質問です。
下記スレより誘導されました。
●EXCEL・VBAの勉強法教えてスレ●
http://pc5.2ch.net/test/read.cgi/tech/1054356121/l50
ExcelVBAにて、
列数に応じて列幅を変えたいのですが、
列幅をPixcel指定することは出来ないのでしょうか?
0036デフォルトの名無しさん
NGNGご返答ありがとうございます。
option base 1の所に書いてありました。
他のモジュールの方でためしたら、エラーはでなかったです。
でも何もエクセルの方に反映されませんでした。
こういうのがいくつかあるのです・・・こういうものなのでしょうか?
0037デフォルトの名無しさん
NGNGどういたしまして。解決できて良かったです。
>でも何もエクセルの方に反映されませんでした。
これはsubプロシージャの変数がセルに反映されていないという意味でしょうか?
>>29のプロシージャだけだと、実行してもセルなどには何も反映されません。
もしセルに変数の値を反映させたいのならば、cells(1,1)=Wakusei(0)などとします。
上記はA1セル(cells(1,1)またはRange("A1"))にWakusei(0)の値を代入せよという意味です。
0038デフォルトの名無しさん
NGNGやっぱりセルに書かないと反映されないのですね
色々モジュールに書いているのですが必要なのかどうかわからなくなっています
まだ本の最初の方だからそういうふうに思うのかな〜
後半になればVBAのすごさがわかるようになるのかな〜
0039デフォルトの名無しさん
NGNG何か意味が分からない。
処理中は2次元配列変数に代入しておいて最後に一括してセルに
反映することもできます。
0040デフォルトの名無しさん
NGNGまだVBAすごさがわかっていません。
今の時点ですごいのだけど、それに気づいていないのかな〜
反映すると面白いと思う、でも必要性を考えると ?
これからなのかな?
0041デフォルトの名無しさん
NGNGここ読んでみてください。
ttp://www.keep-on.com/excelyou/2001lng4/200106/01060093.txt
0042デフォルトの名無しさん
NGNGセルに書いた方が早いなら無理にVBAでコードを書かなくても良いような気がします。
結局は「適材適所」、これに尽きるかと。
自分は業務で同じ作業を手で何度もやるのが面倒&間違う恐れもあるためVBAを使うことが多くなりました。
ヘルプも多少分かりづらい部分があるとはいえ、有用ですよ。
あとは、マクロ記録をしてどういうコードが記述されるか見ていくうちに、徐々に分かってくるようになっていくかも。
0043デフォルトの名無しさん
NGNGご返答ありがとうございます。
もうちょっとがんばってみます。
VBAでゲームが作れるみたいですね
まだまだ先かな〜
0044デフォルトの名無しさん
NGNGSheets(1).Range("A1").CopyFromRecordset r
こんな感じでレコードを取得できるんですが
セルに表示させる前にレコードの各要素を配列変数で受け取りたいと思って
Dim X(0 to 9) As Strange
中略
X.CopyFromRecordset r
といった感じで、配列に渡そうとしても出来ません
配列変数などに入れる方法ってあるんでしょうか?
0045デフォルトの名無しさん
NGNGこんな感じでどうでしょう
Sub test()
Set objIE = CreateObject("InternetExplorer.application")
objIE.Visible = True
objIE.Navigate "file://c:\test.htm"
Do While objIE.Busy = True
DoEvents
Loop
SendKeys "{TAB 3}", True '環境に合わせて数字を変更してください
SendKeys "c:\test", True '参照に表示させたい文字列
Set x = objIE.document.all.tags("input")
For Each y In x
If y.Value Like "*アップロード*" Then
y.Click
End If
Next
End Sub
0046デフォルトの名無しさん
NGNGプライベート関数の中からgoto構文を使ってパブリック関数へ飛ばす際、
パブリックで必要な処理が終わった後に再びプライベートの中のgotoの次の行の処理を
させることは出来るのでしょうか?
ちょっと分かりにくい説明かも知れませんが、例えば、
private sub プライ()
Goto 処理1
Goto 処理2
end sub
purlic sub パブ()
'処理1
label1.caption = "まいった
'処理2
label2.caption = "困った"
end sub
こんな感じの文で、処理1が終わった後に一旦プライベートの方に戻り、それから再び
処理2の方に進みたいのです。
すいませんがどなたか力を貸してください。
0047デフォルトの名無しさん
NGNGGoto構文は流れが分かりにくくなって、バグを誘発するだけだから
できるだけ使わないほうがいいと思うが。
普通にこんな感じではだめ?
private sub プライ()
Call 処理1
Call 処理2
end sub
public sub 処理1
label1.caption = "まいった
end sub
public sub '処理2
label2.caption = "困った"
end sub
0048デフォルトの名無しさん
NGNGどうもありがとうございます!
Call構文自体今まで知らなかったです。
いやぁ無知は罪なもんですねw
今からCall構文について調べてみます。
ありがとうございました!
0049デフォルトの名無しさん
NGNGはないでしょうか?
.Interior.ColorIndexでは元の色しか返ってきません
お願いします
0050デフォルトの名無しさん
NGNGここ読んでみてください。
ttp://keep-on.com/excelyou/1999lng4/199908/99080044.txt
0051デフォルトの名無しさん
NGNG>>47さんの処理1と処理2を1つの関数にまとめるなら、
Private Sub プライ()
Call パブ(1) '処理1
Call パブ(2) '処理2
End Sub
Public Sub パブ(Arg As Integer)
Select Case Arg
Case 1 '処理1
label1.Caption = "まいった "
Case 2 '処理2
label2.Caption = "困った"
End Select
End Sub
という感じで。
0053デフォルトの名無しさん
NGNGSpecialCells(xlCellTypeAllValidation)
を使えば少しは楽になるかな。
とにかく、Excelで色の取得するのは何かと大変。。。
確か隠し関数にちょうどいいのがあった気がするんだけど、
何だったっけ?
0054デフォルトの名無しさん
NGNGのですが、乱数の値が1の場合、確率密度関数が0.05に対応した累積分布関数の値
の算術式はどのようになるのでしょうか?
0055デフォルトの名無しさん
NGNGそれはVBAじゃなくて、単にExcelの関数で十分なのでは。
0056デフォルトの名無しさん
NGNGよくある分布関数なら、NORMDIST、BETADISTとかで。
積分可能な関数なら積分した式をぶち込めば終わり。
むちゃくちゃな分布なら・・・セルに計算させて足し算?
0057デフォルトの名無しさん
05/01/17 15:19:36Get.Cell
0058デフォルトの名無しさん
05/01/18 23:27:25Dim prRange As Range
On Error GoTo errMSG
Set prRange = Application.InputBox(Prompt:="印刷範囲を選択してください"), _
Title:="印刷範囲指定", Type:=8)
With ActiveSheet
.PageSetup.PrintArea = prRange.Address
.PrintPreview
End With
Exit Sub
errMSG:
MsgBox "処理を終了します"
End Sub
エラー処理がエラーになる・・・
_ がいけないのでしょうか?
0059デフォルトの名無しさん
05/01/18 23:46:37てか、括弧が多いのは直してますよね。
0060デフォルトの名無しさん
05/01/19 00:03:11カッコはずしてためしてみます。ご返答ありがとうございます
0061デフォルトの名無しさん
05/01/19 00:11:520062デフォルトの名無しさん
05/01/19 16:57:12特定の列のセルをダブルクリックしたときにだけ
マクロを実行するにはどのようなコードを書けばよいのでしょうか?
B列のどれかのセルをダブルクリック→イベントプロシージャ
それ以外のセルをダブルクリック→反応無し
としたいのです。
IfやActivecell.Rangeなどで試行錯誤したのですがうまくいきませんorz
教えて下さい。よろしくお願い致します。
0063デフォルトの名無しさん
05/01/19 21:29:01BeforeDoublClick
Target.Column = 2
0064デフォルトの名無しさん
05/01/20 00:49:23Access VBAでクラスモジュールを作成、クラスモジュール内で自身のクラス
名を取得したい場合、どのようにすればよいでしょうか。
クラスモジュール内でデバッグ用に、現在実行中のクラスが何処かをmsgbox
で表示させたい、というのが意図です。
宜しくお願いいたします。
0065デフォルトの名無しさん
05/01/20 03:05:37本に、
With Range("出荷伝票テーブル")
.AutoFilter 2, "=スーパーマルジュウ", xlOr, "=フードランド"
.AutoFilter 8, ">=1999/8/1",xlAnd, "<1999/9/1"
End With
というVBAがあって、これを例えば
With Range("出荷伝票テーブル")
.AutoFilter 2, "=スーパーマルジュウ", xlOr, "=フードランド"
.AutoFilter 3, "=アイス",xlOr, "=苺"
End With
のようにして計4つのキーワードの抽出をしたいのですが、こうすると
全部消えてしまいます。AutoFilterを2つ使う場合、1つはキーワード
もう一つは期間でやらないとダメなんでしょうか?
0066デフォルトの名無しさん
05/01/20 17:21:41回答ありがとうございます。
大変参考になりました。感謝感激♪
0067デフォルトの名無しさん
05/01/20 19:36:42フィールドナンバーは合ってます?
0068デフォルトの名無しさん
05/01/20 21:07:15フィールドナンバーは合ってます。
0069marukome
05/01/21 21:42:24ありがとうございました。できました。
後段のfor eachの処理をこれからですが
勉強します。本当にありがとうございました!
遅くなりましてすみませんでした。
0070デフォルトの名無しさん
05/01/22 22:54:58P(x) 0.25 0.15 0.1 0.05
F(x) 0.7 0.85 0.95 1.0
Rnd関数により一様乱数を生成後、ある確率密度関数に従う乱数の生成は、
乱数―確率関数−累積分布関数のテーブルを用いて行う。上の表を参照
して
乱数(x)の値と累積分布関数の値F(x)を用いて乱数を作成するFunctionプロシージャ
を作成してください。
次に、生成した一様乱数の値yが
F(xi) ≦ y < F(xi + 1)
のときに、乱数Xは「xi + 1」とする。
例えば、乱数Rndの値yが0.567の場合、
F(0.45) ≦ y(0.567) < F(0.7)
となり、乱数Xとして「5」を選択する。
Functionプロシージャの実行結果(乱数の発生結果)
はエクセルのA12以下から結果が出るようにしたいです。
長文すいません。よろしくお願いします。助けてください。
0071、、、、
05/01/23 00:10:33天才の方々どうか教えて下さい。
セルの中の文字列をコピーする
コードがわかりません。
Excel中のセルの中の文字列を
ボタン一つでコピーして
ロータスのノーツに貼り付けたいのです。
一つのセル全体をコピーするのは記録で
作れますが、セルの中の文字列をコピー
するという記録がうまくいきません。
どうかお助け下さい。
0072デフォルトの名無しさん
05/01/23 00:55:43ビジネスソフト板のExcelスレで同様の質問があり、回答も付いてるので向こうを見てこい
0073デフォルトの名無しさん
05/01/23 09:54:47こんなエラーは見たことがなかったのですが、どこがいけなかったのでしょうか?
どなたか教えてください。お願いします。
sub 照合()
Dim finale0 As Integer
finale0 = Workbooks(acw0).Worksheets("基本").Cells(Worksheets("基本").Rows.Count, 9).End(xlUp).Row
Dim finale1 As Integer
finale1 = Workbooks(acw1).Worksheets("基本").Cells(Worksheets("基本").Rows.Count, 9).End(xlUp).Row
Dim gyou0 As Integer
Dim gyou1 As Integer
gyou0 = 6
gyou1 = 4
Do Until gyou0 = finale0
If Workbooks(acw0).Worksheets("基本").Cells(gyou0, 9) = Workbooks(acw1).Worksheets("基本").Cells(gyou1, 2) Then
Workbooks(acw0).Worksheets("基本").Cells(gyou0, 15) = Workbooks(acw1).Worksheets("基本").Cells(gyou1, 7)
gyou0 = gyou0 + 1
gyou1 = 4
Else
gyou1 = gyou1 + 1
If Workbooks(acw1).Worksheets("基本").Cells(gyou1, 2) = "" Then
gyou0 = gyou0 + 1
gyou1 = 4
End If
looping:
Loop
end sub
0074デフォルトの名無しさん
05/01/23 11:21:44End If が足りないから。
0075デフォルトの名無しさん
05/01/23 12:27:381あぁ・・・本当だ・・・これを見つけられずに一週間も悪戦苦闘してた俺って一体・・・orz
どうもありがとうございます。
0076タク
05/01/24 10:37:52Access Version:2003
すいません、えっと
前もって変数が決められたものに対してSETステートメントを実行するときにクエリーで抽出させる方法はありますでしょうか?
----------------------------------------------------------------
例:
クエリ名 Q施工内容
抽出したい変数名 TEL
Dim TEL AS String * 20
Set DB_01 = CurrentDb()
Set ST_01 = DB_01.OpenRecordset("Q施工内容",dbOpenSnapshot)
----------------------------------------------------------------
このときにクエリを開く際にTEL変数の抽出をしたいのです。
何か構文はありますか?
それとも他に良い方法がありますでしょうか?
よろしくお願いします。
0077デフォルトの名無しさん
05/01/24 18:19:42dbVersionの値はいくらのでしょうか?
4.0(access2002)以上ってないのでしょうか?
誰かご存知の方は教えてください。
0078デフォルトの名無しさん
05/01/25 00:45:05何が聞きたいのかさっぱり分からないんだが、
誰か分かる?
0079デフォルトの名無しさん
05/01/25 20:02:52「セルA1に時間を入力すると、そこを参照してセルB1に色を付ける。」と言ったことがやりたいのですが
例えばセルA1の値が9:00〜9:15(時間)の間であれば、セルB1に赤色を着色する様にしたいのですが
どうすればできるでしょうか、どうかご教授下さい。
0080デフォルトの名無しさん
05/01/25 21:30:00Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
If Left(Target.Text, 1) = 9 Then
If Right(Target.Text, 2) <= 15 Then
Range("B1").Interior.ColorIndex = 3
End If
End If
End If
End Sub
0081デフォルトの名無しさん
05/01/26 00:16:47Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
Select Case Target.Value
Case Is > TimeValue("9:15")
Range("B1").Interior.ColorIndex = xlNone
Case Is >= TimeValue("9:00")
Range("B1").Interior.ColorIndex = 3
Case Else
Range("B1").Interior.ColorIndex = xlNone
End Select
End If
End Sub
0082デフォルトの名無しさん
05/01/26 01:07:11条件付書式では不足?
008379
05/01/26 08:18:25教えて頂いた式で想い通りの動作が確認できました。
いつもとは違い私には込み入った物を作っていますので
助かりました、ありがとうございました。
0084デフォルトの名無しさん
05/01/26 11:07:23度々すいませんが、解らなくなったので再度質問させて下さい。
If Target.Address の部分にもう一つのセルの時刻を取得させて
(セルA1(9:00から9:15の間の値))かつ(セルA2(15:00から15:15の間の値))であれば
(セルB1に赤色を着色、セルB2に青色を着色、セルB3に青色を着色、以下任意に追加)と言うようにできるでしょうか?
セルA1(開始時刻) と セルA2(終了時刻) を取得して
15分区切りの升目(セル)を、B列に作って居るので、時間の目盛りに沿って塗りつぶしたい(多色)のですが
よろしければ教えて下さい。
0085デフォルトの名無しさん
05/01/26 22:38:16縦(ROW)はいくつまであるの??
0086デフォルトの名無しさん
05/01/26 23:04:560087デフォルトの名無しさん
05/01/26 23:49:08やっぱ、横(カラム)は、256より増やせないんですね??
0088デフォルトの名無しさん
05/01/28 00:09:37何がしたいのかさっぱり分からんぞ
前半のA1とA2がB1,B2,B3と、どうリンクしてるのかも謎だ
前半と後半では質問内容が違うみたいだ
まず81氏のSelect Caseステートメントか
IF,Then Elseステートメントを使えば何でもできるぞ
Private Sub Worksheet_Change(ByVal Target As Range)
With Target
If .Column = 1 Then
If .Value > TimeValue("9:15") Then
.Offset(0, 1).Interior.ColorIndex = xlNone
ElseIf .Value >= TimeValue("9:00") Then
.Offset(0, 1).Interior.ColorIndex = 3
Else
.Offset(0, 1).Interior.ColorIndex = xlNone
End If
End If
End With
End Sub
A列の時刻からB列の設定をする場合は
If .Column = 1 Then をトリガーにして、Offset(0, 1)で指定すればいいし
A1とA2をトリガーにしたい場合は
If .Address = "$A$1" Or .Address = "$A$2" Thenとか
If .Row < 3 and .Column = 1 Thenなんか
使えば良いんだ
分かるところまで自分でコード作って考えてみないと作れないぞ
0089デフォルトの名無しさん
05/02/01 16:25:24ある条件をみたした時に、
カーソルを好きなテキストボックスへ持っていきたのですが、
どうすれば良いでしょうか?
0090デフォルトの名無しさん
05/02/01 16:26:02○持っていきたいのですが、
0091デフォルトの名無しさん
05/02/01 21:38:26TextBoxXXX.SetFocus
End If
0092デフォルトの名無しさん
05/02/02 23:27:36氏ね
0093デフォルトの名無しさん
05/02/02 23:57:58まず間違いなく92=89だが、「氏ね」のセリフを吐くだけで正答を書いてくれている
91さんには何にもなしかよ。
これじゃ日本がおかしくなるわけだ。あぁ嫌だ嫌だ
0094デフォルトの名無しさん
05/02/03 09:59:290095デフォルトの名無しさん
05/02/03 23:46:09答えようが無いし、これで出来るはずなんだけどなぁ
聴く方ももっと、具体的に自分なりに考えて書いたコード載せて
何をしたいのか、明確にしたほうが良いと思われ
ここで、もらった答えをコピペでは
その場しのぎにしかならないよ
0096デフォルトの名無しさん
05/02/04 00:03:49多いように思う。
碌に変数の定義のしかたさえ知らない輩が、答えを教えてもらってシメシメとか思っているん
だろうな。第三者の視点から見ていても、今後の保守管理を当人が出来るのか心配になって
くるよ。
俺は絶対に自分が理解できるまで、他人から教えた貰ったコードは流用しないがね。
0097デフォルトの名無しさん
05/02/04 18:41:59ワードのVBA、エクセルのVBAと、別々の本になってました。
まさかそれぞれが独立してるとは思ってなかったので
何も買わずに帰ってきました。
最初にどれから学ぶべきなんですか?
ちなみに僕はアクセス使ってて、
最初から定義されてるマクロだけじゃ思うように出来なかったので
VBAをと思ったんですが。
でも、どうせ憶えるならエクセルのが良さそうだし・・・
0098デフォルトの名無しさん
05/02/04 19:37:43勉強する目的を明確にしろ。
それ以上助言できん。
0099デフォルトの名無しさん
05/02/05 00:19:43ExcelかAccessがええんとちゃう
いや、俺もこれから覚えたいのだが
Word VBAって意味ある?
0100デフォルトの名無しさん
05/02/05 00:37:16今から勉強するならExcelかAccessだろうな
Excelも、その内部にVBそのものが実装されてるから
極めるとAccessのファイルやらCSVファイルやらオラクルのファイルをコントロール出来るようになる
VBAはExcelからはじめるのが取っ掛かりやすいかと
必要であれば、その先にあるAccessとかVB、SQL、オラクルを勉強すればいいし
Word は・・・・
会社の方針でワードで作ってくれと
言われなきゃ使わないなァ
Word VBAも使ってない
0101デフォルトの名無しさん
05/02/06 21:35:16どんなソース書けばいいかわからん。ヘルプじゃわからんし。ガックシ
0102デフォルトの名無しさん
05/02/06 22:06:51やり方がわからない・・・。誰か教えてくれないかなぁ。↓ネットで検索してここまでは分かった
だが。
Shell "C:\Program Files\Outlook Express\msimn.exe /mailurl:mailto:宛先?bcc=宛先&subject=件名
&body=本文%20"
0103デフォルトの名無しさん
05/02/06 22:53:34俺ならexcelかaccessでデータ抽出・適当に加工後、wordを起動して張り付ける。
情報処理の観点からすれば、それで十分でしょ。
0104デフォルトの名無しさん
05/02/07 20:30:59なんで、そんなメールボムみたいなのを作ろうとしてるんだ?
0105デフォルトの名無しさん
05/02/07 20:35:28これをうつらないようにするにはどうしたらいいんでしょうか。
またhideで隠していたシートをvisible = trueとして表示する時にも同じように一瞬画面がそのシートに移ってしまいます。
これもどうしたら直るのかおしえてください。
0106デフォルトの名無しさん
05/02/07 21:14:120107>104
05/02/07 21:27:26メルボするなら態々メーラーを起動しないでSendMailを使って送信するわな。
0108デフォルトの名無しさん
05/02/07 21:30:370109デフォルトの名無しさん
05/02/07 21:53:560110105
05/02/07 23:04:280111デフォルトの名無しさん
05/02/07 23:14:46Application.ScreenUpdating = False
でどう?
0112デフォルトの名無しさん
05/02/07 23:21:07ありがとうございます。
0113デフォルトの名無しさん
05/02/09 15:20:08Case文で、特定のセルに入力された時間の値を下記のように取得させたのですが
例) Case Is = TimeValue("7:00")
これを2つのセルから値を取得できる様にしたいのですが
Case Is = セルA1TimeValue("7:00") and セルA2TimeValue("7:00")
このようにする形式はあるでしょうか?
2つのセルから値を取り出して、どちらも正ならばAの処理をするとしたいのですが。
どうかご教授下さい。
0114デフォルトの名無しさん
05/02/09 22:21:22Select Case True
Case Range("A1").Value = TimeValue("7:00") And Range("A2").Value = TimeValue("7:00")
MsgBox "どちらもTrueなのでAの処理をする"
End Select
ってこと?
0115デフォルトの名無しさん
05/02/10 00:15:26これならifにandで羅列していったほうが可読性は高そうだが・・
0116デフォルトの名無しさん
05/02/10 01:32:53Select Caseは自分の場合、殆ど使わなかったんだが
Target.Value をつかうことしか思いつかなかったよ
Select Case Trueの"True"を使うことでずいぶんスッキリまとまっていて
114氏のセンスのよさを感じたよ
With Target
If .Address = "$A$1" Or .Address = "$A$2" Then
If Range("A1").Value = TimeValue("7:00") And Range("A2") = TimeValue("7:00") Then
MsgBox "Aの処理をする"
End If
End If
End With
漏れの頭ではこんなふうにしか書けなかったよ
0117113
05/02/10 10:46:55If Target.Address = "$D$5:$D$6" Then
Select Case True
Case Range("D5").Value = TimeValue("7:00") And Range("D6").Value = TimeValue("20:00")
Range("D43:BH43").Interior.ColorIndex = 4
Case Else
Range("D43:BH43").Interior.ColorIndex = xlNone
End Select
End If
End Sub
>>114様ありがとうございました、教えていただきました通り
上記のように関数を書き換えてみました、しかし巧く動作してくれません
何処か書式に誤りがあるでしょうか?
0118113
05/02/10 11:02:24慌ててしまい失礼しました。
下記手直しの文です。
Private Sub Worksheet_Change(ByVal Target As Range)
With Target
If .Address = "$D$5" Or .Address = "$D$6" Then
Select Case True
Case Range("D5").Value = TimeValue("7:00") And Range("D6").Value = TimeValue("20:00")
Range("D43:BH43").Interior.ColorIndex = 4
Case Else
Range("D43:BH43").Interior.ColorIndex = xlNone
End Select
End If
End With
End Sub
0119114
05/02/11 00:48:12そういう処理なら、私ならこう書きます。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Check As Boolean
If Intersect(Target, [D5:D6]) Is Nothing Then Exit Sub
Check = Range("D5").Value = TimeValue("7:00") _
And Range("D6").Value = TimeValue("20:00")
Range("D43:BH43").Interior.ColorIndex = IIf(Check, 4, xlNone)
End Sub
0120デフォルトの名無しさん
05/02/11 06:06:08良いセンスしてる。
0121118
05/02/11 19:12:05こういう処理もあるのですね、参考になりました。
If Intersect(Target, [D5:D6]) Is Nothing Then Exit Sub
Check = Range("D5").Value = TimeValue("7:00") _
And Range("D6").Value = TimeValue("20:00")
Range("D43:BH43").Interior.ColorIndex = IIf(Check, 4, xlNone)
1行目の[D5:D6]の部分と 2、3行目の("D5")("D6")と同期して、4行目の処理が行われますが
参照セルを増やして個別の処理をさせることはできるでしょうか?
1行目の[D5:D6]を[$A:$B]などに代入処理して、別途式を作る途中ですが
例えばD7に値が入力された場合、2、3、4行目の処理内容を変えるようにできるでしょうか?
0122デフォルトの名無しさん
05/02/11 19:12:220123デフォルトの名無しさん
05/02/11 19:22:250124デフォルトの名無しさん
05/02/11 19:37:33マクロの記録でちゃんと記録されるよ。
あとは自分で好きなように弄ればいい。
「FormatConditions」でググれば解説してるサイトもあるし。
0125デフォルトの名無しさん
05/02/11 19:37:59例えば、A列が分類分け、 B列が値
そして、C列は、A列に応じた計算式によって値が入る
Aが ○ だったら C=B*100
Aが ● だったら C=B*200
Aが ■ だったら C=B*300
※○●■はキーワード
みたいな感じにしたいのです。
いろいろ勉強して、select caseを使うことによって
1件目限定なら実現できたのですが
それを、A列にデータが入っていれば2件目以降にも
自動的に適用されるようにすることができません。
どなたかアドバイスをいただけないでしょうか?
レベルは初心者です。
0126デフォルトの名無しさん
05/02/11 20:05:08>A列にデータが入っていれば2件目以降にも 〜
というのがよく判らんのだけど、ここら辺もう少し詳しく書いてくれたら。
0127デフォルトの名無しさん
05/02/11 20:31:28>>126
説明が足らなくて、申し訳ありません。
例えば、野菜を扱う表だったとして
A1 に大根 と入力すれば C1=B1*100 の値
A2 に人参 と入力すれば C2=B2*200 の値
A3 に白菜 と入力すれば C3=B3*300 の値
という感じです。
うまく伝わればよいのですが。
この表で言えば、A1の部分(1件目)だけなら、調べたサンプルを参考に
成功したのですが、この定義を2件目以降にも適用しようとして、
詰まっています。
入力済みデータの件数を取得して for next を使って、select caseを使ってとか
いろいろやってもうまくいかないもので。
近くに詳しい人もいない環境なので、良いアドバイスをいただけたらと思います。
0128デフォルトの名無しさん
05/02/11 20:40:25やりたいことをもっと詳しく説明してくれないと、なんとも言えません。
たぶんできるとは思いますけど。
0129デフォルトの名無しさん
05/02/11 20:45:290130デフォルトの名無しさん
05/02/11 20:46:36With Target
If .Column = 1 Then
If .Value = "大根" Then
.Offset(0, 2).Value = .Offset(0,1).Value * 100
ElseIf .Value = "人参" Then
.Offset(0, 2).Value = .Offset(0,1).Value * 200
ElseIf .Value = "白菜" Then
.Offset(0, 2).Value = .Offset(0,1).Value * 300
End If
End If
End With
End Sub
そういうのは>>88を参考にOffsetを使うと良いよ
多分、Select Caseとか価格表とか使って操作した方が
もっと、スマートに記述できると思うが。
0131デフォルトの名無しさん
05/02/11 20:56:36最初に記述する宣言文って、やっぱり全部、Subの先頭に集めてる?
漏れの場合は、Subの中で分かれた各処理群の先頭に分割して
Dimを記述してるんだけど
一箇所にまとめるとどの宣言文だったか
分からなくなってくるんで・・・
0132デフォルトの名無しさん
05/02/11 21:00:35価格改定されるたびにソース直すのか
0133デフォルトの名無しさん
05/02/11 21:03:50普通、先頭じゃないか?
0134デフォルトの名無しさん
05/02/11 21:04:45俺もそう思いながら書いたんだw
3つしか書いてなかったから
そこは、価格表とかつくってやればいいかと。
0135デフォルトの名無しさん
05/02/11 21:10:580136121
05/02/11 21:17:31D5:D6のセルを参照してD43:BH43の色を変更していますが
この式のまま、多数の参照先とそれに対する処理を作りたいんですが。
1行目の[D5:D6}と2、3行目の("D5")("D6")、そして4行目の("D43:BH43").を代入演算子で置き換えて
If Intersect(Target, [$A:$B]) Is Nothing Then Exit Sub
Check = Range("$AA").Value = TimeValue("7:00") _
And Range("$BB").Value = TimeValue("20:00")
Range("$C1:$D1").Interior.ColorIndex = IIf(Check, 4, xlNone)
$A = D5ならば$AA=D5、$BB=D6、$C1=D43、$D1=BH43 D7ならば別のセルを割り当てる
として、想定したセル内に値が入力されるとこの式で処理できるようにしたい訳なのですが。。
0137デフォルトの名無しさん
05/02/11 21:19:480139デフォルトの名無しさん
05/02/11 21:41:13>D7ならば別のセルを割り当てる
この場合それぞれどのセルになるのかまで分からなければ
コードを簡略化させる時の法則がわかりません。
D列の場合のみ処理するというのであれば、最初の行を
If Intersect(Target, [D:D]) Is Nothing Then Exit Sub
にしておけばよさそうですが。
0140デフォルトの名無しさん
05/02/11 21:44:09「最初の行を」じゃなくて「最初の行だけは」でした。
それ以降の部分は、D7の時どうなるかによって変わります。
0141デフォルトの名無しさん
05/02/11 21:58:48>>130
ありがとうございました。
野菜は例えで使っただけで、
実際に扱うものは、めったに単価が変わらないんですよ。
(ほぼ100掛けなんだけど、たまに200掛けとか300掛けのが混じったりとか)
だから、あらかじめその分類ごとに計算式を取得できたら
楽だなと思ったもので。
あとはEXCELの勉強の意味もあります。
教えていただいた構文は、うまく動作しませんでした。
もう少しにらめっこしながら、悩んでみます。
ありがとうございました。
0142139
05/02/11 22:29:485行目以降から処理するとして、
If Intersect(Target, [D5:D42]) Is Nothing Then Exit Sub
でしたね。
0143121
05/02/12 08:51:16レスありがとうございます
TargetセルはD5〜G10の範囲なんですが、Targetを指定したとして
2行目以降の処理を個別に指定したいのです。
Targetセルが一つであれば以降の式には、そのままセル名を直接書けばいいのですが
複数指定した場合、配列に格納しておいて自動的に消化される様にできないかと思ったんです。
$A = (Target A = 処理A、 Target B = 処理B、 Target C = 処理C)
簡単に考えるとこういう物で、以降の該当箇所に代入されて処理されていく様にできないでしょうか?
0144デフォルトの名無しさん
05/02/12 09:24:31あなたのやりたいことがいまいちわからないのですが、
以下のコードで参考になりますか?
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ChangeArea As Range
Dim Cell As Range
Set ChangeArea = Intersect(Target, [D5:G10])
If ChangeArea Is Nothing Then Exit Sub
For Each Cell In ChangeArea
MsgBox Cell.Address '一つのセル
Next Cell
End Sub
ここのセル(例えばD7,E8,F9,G10)がそれぞれこうだったらここのセルに
こういう処理をするというのを書いてもらえればわかりやすいんですけどね。
0145143
05/02/12 11:11:46If Intersect(Target, [D5:D6]) Is Nothing Then Exit Sub
Check = Range("D5").Value = TimeValue("7:00") _
And Range("D6").Value = TimeValue("20:00")
Range("D43:BH43").Interior.ColorIndex = IIf(Check, 4, xlNone)
それぞれの処理についてですが
D5に7:00と入力され、かつ、D6に20:00と入力された場合は、D43〜BH43 に色を塗る
いまはこの処理のみですが
D7に7:00と入力され、かつ、D8に20:00と入力された場合は、D44〜BH44 に色を塗る
D9に7:00と入力され、かつ、D10に20:00と入力された場合は、D45〜BH45 に色を塗る
と処理先を変更したいのです。
参照先がこの程度なら、式をそのまま参照セル分コピーするのですが、参照先が膨大になるため代入処理したいと
思って居るんですが、なにか良い手はありませんか?
0146デフォルトの名無しさん
05/02/12 13:47:20それだけの情報しかないのであれば、こうなります。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Check As Boolean
With Target
If .Count > 1 Then Exit Sub
If Intersect(Target, [D5:G10]) Is Nothing Then Exit Sub
If .Row Mod 2 = 0 Then Set Target = .Offset(-1)
End With
With Target
Check = .Value = TimeValue("7:00") _
And .Offset(1).Value = TimeValue("20:00")
.Offset(38 - (.Row - 5) \ 2).Resize(, 57).Interior.ColorIndex _
= IIf(Check, 4, xlNone)
End With
End Sub
E,F,G列の場合の色を塗る範囲が判断できませんので、それは
ご自分で工夫なさってください。
0147デフォルトの名無しさん
05/02/12 22:25:44全て、やり方が散りばめられてるんだがなァ
Worksheet_Changeのトリガーを
.Column = 4 とかにして
あとはOffsetかCellsを使って
>>146 氏のOffsetとresize使うか
Range(Sheet01.Cells(.ROW, 4), Sheet01.Cells(i, 60)).).Interior.ColorIndex
とか使えば良いだけなんだが
0148デフォルトの名無しさん
05/02/12 22:29:47Range(Cells(.ROW, 4), Cells(.ROW, 60)).Interior.ColorIndex
0149デフォルトの名無しさん
05/02/13 00:33:24Dim i As Integer
Worksheets.Add after:=Worksheets(Worksheets.Count)
i = Worksheets.Count
ActiveSheets.Name = "Sheet" & i
Worksheets(1).Activate
Worksheets(1).Hyperlinks.Add _
anchor:=Worksheets(1).Range("B65536").End(xlUp).Offset(1), _
Address:="", _
SubAddress:="'" & Worksheets(i).Name & "'!A1", _
TextToDisplay:=Worksheets(i).Name
End Sub
ActiveSheets.Name = "Sheet" & i の所いけないみたいなのですけど
どういう事なのでしょうか? エクセルのシートに名前が必要なのでしょうか?
0150デフォルトの名無しさん
05/02/13 01:09:35ActiveSheet.Name ○
0151デフォルトの名無しさん
05/02/13 01:09:36以下のようなコードを書きました
Sub test()
UserForm1.WebBrowser1.navigate "http://www.2ch.net/2ch.html"
End Sub
Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
UserForm1.Show
MsgBox TypeName(pDisp)
MsgBox TypeName(pDisp.document)
End Sub
これを実行すると、まず左フレームに板一覧
右のフレームに「2ちゃんねるへようこそ」が表示され
一つ目のMsgBoxで「WebBrowser」と表示されるのですが、
二つ目のMsgBoxのところで
「実行時エラー'438':オブジェクトはこのプロパティまたはメソッドをサポートしていません。」
というエラーが出て止まってしまいます。
原因を調べようと、二つ目のMsgBoxのところにブレークポイントを設定し
pDispをウォッチしてみたところ、型が「Object/WebBrowser」と表示されてるにも関わらず
クラスメンバーが一つも無く「<変数なし>」と表示されるという不可解な状態でした。
何故こんなことが起こるのでしょうか?
これを検出し回避する方法はあるのでしょうか?
TypeName(pDisp)で「WebBrowser」と表示されてしまっては
WebBrowserクラスの持ってるメンバーは全て持っていると判断して
メンバー変数にアクセスしてしまうわけですが、
そこでエラーが出てしまって、どうコーディングしていいか困ってしまいました。
どなたか、よろしくお願いします。
0152デフォルトの名無しさん
05/02/13 05:24:16使ったツールバーも一緒に配布したいと思います。
faceidを使った既存のアイコンではなくてAdobeのAcrobatのように
オリジナルのイメージを使ったものなのですが
どうやればいいのですか。
ググって、ワークシートにあるビットマップをVBAでコピーして
facepasteという方法があることもわかったのですが、
xla内にあるワークシートにビットマップを置いておく方法が
わからないのです。
何かいい方法はありませんか。
0153デフォルトの名無しさん
05/02/13 07:34:31出してるところってあるよな・・・しかもソース弄れないとか
0154デフォルトの名無しさん
05/02/13 14:59:09どうもありがとうございます。うまく起動することができました。
0155デフォルトの名無しさん
05/02/14 12:42:22そのページのソースには.jpgリンクがJavascript:DoLink("〇△□")
と書かれているのですが、このリンクを開いて保存するにはどうしたらいいか教えてください。
0156デフォルトの名無しさん
05/02/15 05:48:54得ろ画像収集プログラムでつか?w
0157デフォルトの名無しさん
05/02/15 20:14:11sheet2!A1にジャンプするようにしたいのですが、どんなコードを書けばいいでしょうか?
0158デフォルトの名無しさん
05/02/15 20:37:110159デフォルトの名無しさん
05/02/16 09:53:340160デフォルトの名無しさん
05/02/16 10:11:54form!field
0161デフォルトの名無しさん
05/02/16 10:12:49record!field
0162デフォルトの名無しさん
05/02/16 18:22:37ドット、、、
ステキな呼び方ですねw
0164デフォルトの名無しさん
05/02/17 01:02:06特定のブックが存在するかどうかをチェックし、
なければ新たに作成し、その特定のブックのsheet1に名前を付ける
という記述をしようとしました。
Private Sub Workbook_Open()
Dim FSO
Set FSO = CreateObject("Scripting.FileSystemObject")
If Not (FSO.FileExists("D:\特定.xls")) then
Workbooks.Add
ActiveWorkbook.SaveAs FileName:="D:\特定.xls"
ActiveWorkbook.Worksheets(1).Name = "名前"
End If
End Sub
これを実行してみると、新しい「特定.xls」は出来上がるのですが、
シートに名前がついてくれません。
何がまずいのでしょうか?
0165デフォルトの名無しさん
05/02/17 12:20:48Excel2000でやってみたらうまくいったよ。
0166159
05/02/18 09:48:42fieldを指定するとき!になるんですね。
0167デフォルトの名無しさん
05/02/19 19:29:20for i=1 to 1000000 : next iだと秒数指定できないし。
GetTickCount使うんですかね。カウントが0に戻らないことを祈りつつ。
0168デフォルトの名無しさん
05/02/19 19:30:29javaなら
Thread.sleep(ミリ秒数);
でいいんだけどね。
0169>>167
05/02/19 20:07:28MsgBox "5秒間待ってから実行します"
0170デフォルトの名無しさん
05/02/19 23:40:03Application.OnTimeか
Application.Waitみたいな感じで
時間を�_秒で指定する方法は無いんでしょうか?
0171デフォルトの名無しさん
05/02/19 23:46:490172デフォルトの名無しさん
05/02/20 00:39:11APIのSleep関数
0173デフォルトの名無しさん
05/02/20 19:47:54CommandButtonを押したら、TextBoxのカーソル位置に
"hoge"を挿入ってのはどうやればいいのかな?
.Value="hoge"じゃ、いままで入力されてたものが消えてしまうし
.Value=.Value&"hoge"とかやっても、カーソル位置への挿入は出来ないし・・・
どなたかお教え願います
0174デフォルトの名無しさん
05/02/20 20:16:360175デフォルトの名無しさん
05/02/20 20:23:39[foo|piyo ]
↓
[foohogepiyo ]
ってな感じ。( | がカーソル位置)
CommandButton押した時点でTextBoxからフォーカスが外れるから
無理かなとも思ったけど、どこかでこういう動作するフォームを使った覚えがあるし。
一体あれはどうやってたんだろう?
0176174
05/02/20 20:56:38Dim mystart As Integer
Dim buf1 As String
Dim buf2 As String
mystart = TextBox1.SelStart
mylen = Len(TextBox1.Value)
buf1 = Left(TextBox1.Value, mystart)
buf2 = Right(TextBox1.Value, mylen - mystart)
TextBox1.Value = buf1 & "hoge" & buf2
こんなんで如何?
あと質問するときは○○な理由でうまくいかないって説明するよりも、自分が望んでいる
ことを最初に説明しちゃったほうが回答しやすいと思うよ。
0178167
05/02/20 23:27:51エクセル用ですね。でも、ひとつ勉強になりました。感謝。
API関数で何とかします。
0179デフォルトの名無しさん
05/02/21 10:11:32プロパティも引数とるんですねぇ。
プロパティ()みたいに。
0180デフォルトの名無しさん
05/02/21 11:45:52「item」という「プロパティ」があるし。
javaで言うところのVectorクラスのインスタンスみたいなものなのかな?
0181デフォルトの名無しさん
05/02/21 12:32:580182デフォルトの名無しさん
05/02/21 12:53:04えー
どの変が間違ってますか?
0183デフォルトの名無しさん
05/02/21 13:48:070184デフォルトの名無しさん
05/02/21 14:32:120185デフォルトの名無しさん
05/02/21 16:18:210186デフォルトの名無しさん
05/02/21 17:16:00ばーか
0187デフォルトの名無しさん
05/02/21 21:38:09また開いた時にさっき入力した値がすでに入力されているようにするにはどうしたらいいんでしょうか。
0188>187
05/02/21 22:04:280189デフォルトの名無しさん
05/02/21 22:19:20ユーザーフォームを開いた時にそれをテキストボックスに代入するようにしておくとか。
まあStatic変数でもいいけど。
0191デフォルトの名無しさん
05/02/21 23:03:02だとしたら詳しく教えてほしい。
0192デフォルトの名無しさん
05/02/21 23:17:48一応VBAのみで変数の値を保持する方法もあるけど、超面倒なので割愛する。
0193デフォルトの名無しさん
05/02/21 23:37:03気がしてね。これが最善の方法なのかなぁ?
0194デフォルトの名無しさん
05/02/22 00:03:580195デフォルトの名無しさん
05/02/22 08:09:58ブック本体を上書きしてしまうなどオレには考えられん
0196デフォルトの名無しさん
05/02/22 22:04:22不可視シートをやむなく使うなァ
不揮発性の二次元配列なんかあると便利なんだが
0197>>195
05/02/22 22:18:52メンドクサ。
0198デフォルトの名無しさん
05/02/22 22:36:13あれは素人のやること。
0199デフォルトの名無しさん
05/02/23 04:46:120200デフォルトの名無しさん
05/02/23 05:03:00ネタだよね。
まさか今時そんなダサいことやってる奴が居るわけないよな。
0201デフォルトの名無しさん
05/02/23 11:57:18の数値に[小数点以下の桁数]っていうテキストボックスの中にスピンボタンが
入っているコントロールがあるんだけど、これはなんというコントロールですか。
VBAにはないですか?
0202デフォルトの名無しさん
05/02/23 13:50:33ネタで言ってるんだよね。
0203デフォルトの名無しさん
05/02/23 14:39:580204デフォルトの名無しさん
05/02/23 18:16:45あれは、EDTBX(エディットボックス)といいます。
VBAには、ありません。
スピンボタン と テキストボックス を組み合わせて、同じような昨日を実装してください。
0205201
05/02/23 18:42:420206デフォルトの名無しさん
05/02/23 19:03:060207デフォルトの名無しさん
05/02/23 19:38:55マジです
0208デフォルトの名無しさん
05/02/23 19:50:06マゾです
0209デフォルトの名無しさん
05/02/23 23:05:40↓で失敗.正しくはどうやるのか教えてください
dim dat() as single
dat(i)=cells(x,y).value
0210デフォルトの名無しさん
05/02/23 23:18:39値を格納する前に要素数を指定
0211デフォルトの名無しさん
05/02/23 23:22:510212デフォルトの名無しさん
05/02/23 23:48:05ごめんなさい.間違えました.
↓で失敗しました.要素数は指定していました.
dim dat(a) as single
dat(i)=cells(x,y).value
>>210,211
ご指摘ありがとうございます.
0213デフォルトの名無しさん
05/02/23 23:52:27まさか変数iが定義されていないってオチはないよね。
小出しにしないでコード全てコピペすれ。
問題を解決したいのであれば。
0214デフォルトの名無しさん
05/02/24 00:43:18...
他の処理
...
redim dat(a) as single
dat(i)=cells(x,y).value
0215デフォルトの名無しさん
05/02/24 00:49:30他所でやれ
0216デフォルトの名無しさん
05/02/24 01:28:55> 小出しにしないでコード全てコピペすれ。
> 問題を解決したいのであれば。
コードに
> ...
> 他の処理
> ...
こんな行が本当に含まれるならエラーが出るのは当然だが。
0217デフォルトの名無しさん
05/02/24 19:53:57これってプロテクトみたいなのかけられないのでしょうか?
0218デフォルトの名無しさん
05/02/24 20:03:06まぁ、実はこの方法ではイベントプロシージャは丸見えなんだけどね。
そこはイベントプロシージャ上にコード書かなければいいだけだし。
0219デフォルトの名無しさん
05/02/24 23:19:25こう、スクロールしたりとか
0220デフォルトの名無しさん
05/02/25 02:04:13dim i as integer
aho = "あほばかまぬけ"
for i = 1 to len(aho)
print mid(aho, i)
next i
0221デフォルトの名無しさん
05/02/26 14:47:33このオブジェクトを使うときに
Dim app As Application
Set app = ActiveWindow.Application
とかやって
appオブジェクトにプロパティやらメソッドやらをつけてやらなくてもいいのはなぜですか?
みんなクラス名をそのまま使って
Application.Worksbooks("Book1.xls")........
とかやってる。
インスタンスを作らなくていいんですか?
0222デフォルトの名無しさん
05/02/26 18:29:47言語仕様上許されているから、としか言いようがない。
インスタンスを作ってプロパティ経由でメンバにアクセスするように
したらバグを減らせる可能性が高いけどね。
そういう概念を知らない人、知ってても使わない人、色々
居るのでしょう。
0223デフォルトの名無しさん
05/02/26 19:47:31きちんと宣言したりしないな。
0224デフォルトの名無しさん
05/02/26 21:43:18と言ってみるテスト
0225デフォルトの名無しさん
05/02/27 00:53:24いつも感覚的にコード書いてるんだけど
なんか、そういうVBAの構造とか概念の書いてあるいい本ってあります?
0226デフォルトの名無しさん
05/02/27 11:31:30一つのセル内で改行されているセルを二つのセルに分割したいのですが。
セルA1の値が
"みかん リンゴ"
というようにスペースなどで分割されている場合は下記のように
splitを使ってB1、C1に振り分けることが出来たのですが、
Sub test()
Dim A() As String
A = Split(Cells(1, 1).Value, " ", 2)
Cells(1, 2).Value = A(0)
Cells(1, 3).Value = A(1)
End Sub
一つのセル内で
みかん
リンゴ
というように改行されている場合にどのように分割すればいいのか分かりません。
どなたか教えてください。よろしくお願いします。
0227デフォルトの名無しさん
05/02/27 11:43:12vblfですぷりっとぉ
0228デフォルトの名無しさん
05/02/27 12:35:35ありがとうございました!
0229デフォルトの名無しさん
05/02/27 14:35:09それがなかなか見当たらないよねぇ。
microsoft社のヘルプにさえよく書かれていない。
vbaに関する本で、オブジェクトやらメソッドやらプロパティやらが詳しく載っている本を参考にするとかなさそうだね。
ところで、>>221の答えは>>224でいいのかな?
0230デフォルトの名無しさん
05/02/27 15:56:58VBのサブセットなんだから、例えばVB6の入門書を読めばいいんじゃないの。
言語仕様が解説してあるようなやつ。
229の云うようなプロパティ辞典的なものも併せて読んでくとか。
0231デフォルトの名無しさん
05/02/28 18:49:18言語仕様が行き当たりばったりなんだから
構造とか概念も糞も元から無いんだよ
0232デフォルトの名無しさん
05/02/28 21:46:30ExcelのデータをAccessに取り込みたいのですが
どうすればいいのでしょうか?
AccessにあらかじめExcelから抜き出したい列をテーブルとして
作成しておいて、そこにExcelからのデータを落とし込みたいのです。
最終的にはExcelファイルを指定してそのデータをAccessに落とし込みたいのですが・・・
何か参考になるサンプルコードやサイトがあれば教えてください。
よろしくお願いします。
0233デフォルトの名無しさん
05/02/28 22:42:030234デフォルトの名無しさん
05/02/28 22:47:36TransferSpreadsheetもググる事をお勧めする。
0235デフォルトの名無しさん
05/03/01 08:53:25カスタムにしてコンポーネント入れとかないといけないんだよね。
配布したときにお客さんがそれ忘れてるとかなり困ったことになる。
0236232
05/03/01 14:33:06格納することに成功しました。ありがとうございます。
そこでまた質問なのですが
指定フォルダ直下にあるエクセルファイルを全て読み込んで
テーブルに格納したいのです。例えばCドライブ直下に
エクセルファイルが3個あったとしたらそれを全て順番に
読み込んでテーブルに格納したいのです。(エクセルファイルの
書式や列数は全て同じです)フォルダを指定するダイアログを
表示することはできていてそれを使いフルパスを取得することも出来ます。
しかし、この後どうすればいいのか分からないのです。
どうかご教授よろしくお願いします。
0237デフォルトの名無しさん
05/03/01 20:08:29ここの
http://www.microsoft.com/japan/msdn/columns/office/office09072000.asp
「フォルダ内のすべてのファイル名を取得するために Dir 関数を使用する方法」
を参考にしたら。ファイル名を取得してファイルの数だけ反復処理する。
0238デフォルトの名無しさん
05/03/01 22:42:480239232
05/03/02 21:40:51直下にあるExcelファイルを全てAccessのテーブルに格納する事に
成功しました。自分で適当に作った簡単なExcelファイルなら
格納できるのですが、マクロの入っている(正しい表現ですか?)Excel
ファイルだと格納できないのです。Access側のVBAでマクロの入った
Excelファイルをテーブルに格納することって出来るのですか?
よろしくお願いします。
0240デフォルトの名無しさん
05/03/02 21:49:45「〜ですか? よろしくお願いします。」
と言う使い方は日本語的におかしいと思うのは俺だけですか?
よろしくお願いします。
0241デフォルトの名無しさん
05/03/02 23:14:160242232
05/03/03 00:14:22いえ・・・Excelのデータを取り込みたいのです。つまり
ExcelのデータがそのままAccessのテーブルに入るように
したい(もちろんAccessの方では事前にテーブルを用意しておいて)です。
でも実行しようとすると
マクロが有効になっているとか何とか(よく覚えてなくて・・・スイマセン)
出て、その後エラーナンバー13「型が一致しません」と出ます。
Accessのテーブルは試験的な段階なので全部テキスト型にしてあるし
Excelの方もマクロが使ってある以外はこれといって普通の文字列データに
見えます。原因が全く分からないので、どなたかご存知の方
ご教授ください。よろしくお願いします。
0243デフォルトの名無しさん
05/03/03 21:10:040244デフォルトの名無しさん
05/03/04 11:39:05ご存知の方がおられましたら、
よろしくお願いします。
0245デフォルトの名無しさん
05/03/05 14:44:56サーバーが実在するかどうかってこと?
それとも 404 が戻ってくるかどうかを見るってこと?
存在してもたまたまそのとき落ちてたら存在しないって判定したいの?
0246デフォルトの名無しさん
05/03/06 17:07:43Load UserForm2
With UserForm2
.StartUpPosition = 0
.Top = 50
.Left = 10
.Show
End With
End Sub
名前が不適切というエラーが出ちゃいます。
フォームに何かしなければいけないのでしょうか?
0247i
05/03/07 00:16:23FSO(File System Object)は、使えますか?
自宅には当然95なんてシロモノは無いので、確認がとれません
会社でぶっつけ本番でもいいのすが不安で・・
ところで、アクセス95ってDAOくらいはぶん回せるのかしら・・・
不安不安不安・
0248i
05/03/07 00:17:370249デフォルトの名無しさん
05/03/07 00:42:36よくないと思うが・・・。
今後色々と大変だと思うけど、ま、頑張ってね。
0250デフォルトの名無しさん
05/03/07 00:43:55レイトバインディングしたいと思ってます。
CreateObject("???")の ???の部分はなんて設定したらいいの?
ググってもわからんかったよ。すまん。
教えてエロいひと!!
0251デフォルトの名無しさん
05/03/07 01:30:51VB4.0との統一もそれと同時でDAOのバージョンは3.0で
回せるのではないでしょうか。
95で足りている環境ならブッツケ本番でも充分対応できる筈。
気楽にやってみてはいかがでしょうね>>247
0252i
05/03/07 01:36:23使う価値あんのかしら・・なんて
0253sage
05/03/07 01:39:430254デフォルトの名無しさん
05/03/07 01:55:200255デフォルトの名無しさん
05/03/07 09:27:03VTFO資料無さ杉。
0256デフォルトの名無しさん
05/03/08 22:46:360257デフォルトの名無しさん
05/03/08 23:12:21> 方法はありますか?
あります。
というかうちの個人用マクロブックに
「選択範囲をCSV形式で出力」ってのがある。
0258デフォルトの名無しさん
05/03/08 23:38:36ありがとうございます。
確認してみますね。
0259デフォルトの名無しさん
05/03/09 02:05:48VTFOってなに?
0260デフォルトの名無しさん
05/03/09 10:59:49VSTOのことじゃね?
0261デフォルトの名無しさん
05/03/15 22:46:23フォームのテキストボックスに入れた日付の値が、
土日と、「休日」という国民の祝日の一覧を入れた範囲の値と同じものだと背景が赤文字になるようにしたいのです。
=OR(WEEKDAY($A1,3)>=5,COUNTIF($K$1:$M$16,$A1)+COUNTIF(休日,$A1)
セルの条件付き書式では上の記載でいけたのですが、VBAだとどう書けばいいでしょう。
そのままぶっこんでも当然動かないし…
0262デフォルトの名無しさん
05/03/15 22:55:36条件付き書式自体が適用されないなら、
マクロの記録でも使って勉強しろ。
条件付き書式は適用されてるが、思い通りの結果を返さないなら、
VBAで条件付き書式を設定したセルの書式条件式がどうなってるか調べろ。
おそらくセル位置の指定方法を間違ってるんだと思うけど。
0263デフォルトの名無しさん
05/03/16 23:23:28エクセルやワードなんかで表を作ったりしてそれをプリントアウトして勉強
してるんですが一々面倒くさくなってしまったのでいっそのことVBAで問題
作ってしまおうと考えて、いまVBAの勉強を始めてます。一枚のシートで
Aセルに問題、Bセルに答えと言うようにしてテキストボックスにキチンと
漢字も間違わずに正確に語句を書けば正解と言うようにしてシートに自分
で幾らでも問題を追加して作れるようにしたいんですがこういう事はVBAで
可能ですよね?
0264デフォルトの名無しさん
05/03/17 00:35:500265デフォルトの名無しさん
05/03/17 01:37:38わざわざVBA使わないでも、
A1に問題、B1に答えを記入する欄、C1に"=If(B1=C1,"正解!","残念!")"、D1に解答として、
D列を非表示にすれば良いだけなのでは?
0266デフォルトの名無しさん
05/03/17 09:33:36有難うございます。その式を基本にして何とか作れそうです。
0267デフォルトの名無しさん
2005/03/28(月) 13:13:39Accessのマクロを、VBAプログラムから生成することってできるんでしょうか?
逆のこと(マクロをVBAに変換)はできるのですが・・・
ご存知の方おられましたらよろしくおながいします。
0268デフォルトの名無しさん
2005/03/28(月) 13:25:370269デフォルトの名無しさん
2005/03/28(月) 13:31:28では正確にいえば「マクロオブジェクト」すなわち「データベースウィンドウ」の「マクロ」欄に一覧表示されるべきオブジェクトをVBAスクリプトから作りたい。といったらよいですか。
「Accessのマクロ = VBA 」そんな既知のことはあえて聞かない。
0270デフォルトの名無しさん
2005/03/28(月) 13:36:410271デフォルトの名無しさん
2005/03/28(月) 13:37:370272デフォルトの名無しさん
2005/03/28(月) 17:42:53ACCESSのVBAで、自分自信(MDB)が存在するフォルダまでのパスを取得する方法は無いでしょうか。
かなり探したのですがカレントディレクトリを取得する方法くらいしかみつかりませんでした。
配布して使いたいので、利用者がどのドライブのどのフォルダに設置するかわからないので、なんとか実現したいのですが。
よろしくお願いします。
0273デフォルトの名無しさん
2005/03/28(月) 18:00:47MsgBox ThisWorkbook.Path & "\" & ThisWorkbook.Name
End Sub
Excelだとこんな感じでフルパス取得出来るけど。(フォルダまででいいなら& "\" & .Nameは不要
使ってないからよくわからんがACCESSも同じような方法あるんじゃないの?
0274デフォルトの名無しさん
2005/03/28(月) 22:45:26ttp://www.nurs.or.jp/~ppoy/access/access/acM019.html
0275デフォルトの名無しさん
2005/03/28(月) 23:21:03ありがとうございます。目的のことができそうです。
0276デフォルトの名無しさん
2005/03/29(火) 08:02:12VBAで「マクロオブジェクト」を作りたいのだと思う。
0277デフォルトの名無しさん
2005/03/30(水) 13:05:490278デフォルトの名無しさん
2005/03/31(木) 17:23:09受け付けないようにするにはどう書けばいいのでしょうか?
0279デフォルトの名無しさん
2005/03/31(木) 17:35:55とはどういうことですか?
日本語で説明してください。
0280デフォルトの名無しさん
2005/03/31(木) 17:36:56KeyPressのときに
if KeyAscii = ○○ then
KeyAscii=0
end if
にすればいいと思う。
○○はキーボードからの入力を受け付けたくないキーの
KeyAcsiiコードで。
と俺は思った。
0281デフォルトの名無しさん
2005/03/31(木) 17:43:490282デフォルトの名無しさん
2005/03/31(木) 17:45:44ありがとう!
0283デフォルトの名無しさん
皇紀2665/04/01(金) 10:12:590284デフォルトの名無しさん
皇紀2665/04/01(金) 10:33:00コントロールのオブジェクト名を「固定名&連番」にして
For〜NextとControls()を使って処理。
あとはヘルプ参照。
0285デフォルトの名無しさん
皇紀2665/04/01(金) 11:14:500286デフォルトの名無しさん
皇紀2665/04/01(金) 11:22:25「複数のコントロールのプロパティ」なら>>284だな
0287デフォルトの名無しさん
皇紀2665/04/01(金) 11:29:39>>286さん
ありがとうございます。
0288デフォルトの名無しさん
2005/04/06(水) 23:50:47エクセルでキー入力してDBからデータを取ってきて表示させたいんすけど、
2つのテーブルの値を交互に表示するにはどの様にすればよろしいですか?
エクセル2000です。よろしくお願いします
0289デフォルトの名無しさん
2005/04/07(木) 03:15:16Sheets("Pos").Visible = True
の行までくると
「実行時エラー'1004':
Worksheet クラスの Visible プロパティを設定できません。」
のメッセージが表示されます。Excel2000です。
どうしたら良いのでしょうか。
0290289
2005/04/07(木) 04:16:580291デフォルトの名無しさん
2005/04/07(木) 20:23:040292デフォルトの名無しさん
2005/04/12(火) 12:15:54Exactly! フォロー感謝します。
当然のことながら逆のこと(VBAコードを書いてマクロとして実行させる)はできますし、「マクロとは何か」なんてことは知っています。
業務上、急ぎでそれをする必要があったので、詳しく説明できなかったのが悪かったと思います。
自分個人なら「マクロオブジェクトをプログラムから作る」必然性はないのですが、業務上、「デザインビューで、何が行われているのか視覚的にわかる必要がある=マクロオブジェクト」を作らなければならないのです。
内容は、「連番のついたクエリを順に実行する」というマクロで、手作業でマクロオブジェクトをデザインビューで作ると、けっこう面倒です。
(「クエリを開く」→クエリ01,02,…を繰り返すことになる)。VBAコードで、コピペできれば楽ですが・・・
ご存知の方も多いでしょうが、業界、理にかなわないものを作れという仕様もけっこうあるので。
今回の場合は「動作を視覚的にわかりやすく見たい」という要求のもとでやってます。
(ようするに利用者がvbaコードを読めないか、読む手間を省きたいらしい)
0293デフォルトの名無しさん
2005/04/12(火) 12:32:540294デフォルトの名無しさん
2005/04/12(火) 15:50:33Shapes("hoge").GroupItems(添字).TextFrame.Characters.Text
の値を取得できても、変更できません。
グループ化を解除せずに、変更する方法はありませんか?
0295デフォルトの名無しさん
2005/04/13(水) 00:14:05フォーム中のキャンセルを押すとフォームが消えるって作ったのですが
コントロールボタンを押した時のコードで
UserForm.Show
ってやるだけで表示されてしまいます
しかし、キャンセルを押された時には
Unload UserForm
としているので、コントロールを押された時は
Load UserForm
UserForm.Show
とすべきなのでしょうか?
それともShowメソッドが呼ばれた時点でメモリにロードされていなければロードする
なんて内部処理があるのでしょうか?
それとも考えが間違っているのでしょうか?
0296デフォルトの名無しさん
2005/04/13(水) 05:19:08> なんて内部処理があるのでしょうか?
あります。
0297デフォルトの名無しさん
2005/04/13(水) 15:29:040298デフォルトの名無しさん
2005/04/13(水) 20:41:120299デフォルトの名無しさん
2005/04/13(水) 20:51:260300デフォルトの名無しさん
2005/04/13(水) 20:57:14どのタイミングでフォームが作られるのかわからなかったんだけど
本読んだらUserForm.Showでもいいし
UserForm.Label1.Caption="あああ"でもいいけど
最初に使おうとしたときに勝手に作ってくれるらしい。
0301デフォルトの名無しさん
2005/04/14(木) 10:15:26VBAに限ったことじゃないけど、よく使われる変数名ってあるじゃないですか。
i〜nはFORTRANの名残で整数型によく使われたり
hoge、hugaなんかは特に意味のないものとして使われたり。
そういうのが多く紹介されてるサイトって無いですかね?
又は、詳しい方が居るならここに羅列していただければありがたいのですが。
0302デフォルトの名無しさん
2005/04/14(木) 15:02:49エクセル本体やブックの KeyDown イベントを拾う方法はあるのでしょうか?
只今、アドインを作成しています。
このアドインはキーボードで操作するもので、
受け付けるキー入力として Esc キー押下があります。
但し、アドイン毎にその動作は異なります。
(続く)
0303302
2005/04/14(木) 15:04:10リセット処理を走らせたいのですが、
Application.OnKey を使うと、
1つのキーに1つのルーチンしか割り当てられません。
割り当て先のルーチンで各アドインの処理を
直接呼ぶことも出来ますが、これではアドインを追加するたびに
OnKey で呼ばれるルーチンに手を入れる必要があります。
そこで、各アドイン側で WithEvents 宣言したオブジェクトを経由して
KeyDown イベントを受け取れないものかと考えていますが
うまくいきません。
(続く)
0304302
2005/04/14(木) 15:04:43アドイン(KeyHookアドイン)を別個に1つ作成し
各アドインは KeyHook に自分のイベントハンドラとなる
Public プロシージャを登録し、
キー押下時に KeyHook から Application.Run で
各アドインのイベントハンドラを順に呼び出そうと
しています。
ですが、どちらにしても他人が作ったアドインと OnKey の
取り合いになることも避けたいので
OnKey 以外でキー押下を検出する方法を
探しております。
どなたかお知恵を拝借できましたら幸いです。
またスレ違いでしたら失礼しました。
もし、適切なスレがありましたら
恐れ入りますが誘導してください。
0305302
2005/04/14(木) 15:15:09エクセルのアドインです。
0306デフォルトの名無しさん
2005/04/14(木) 17:18:17ACCESS2000&WinXPにて、APを作成しています。
APの内容は
ユーザー側画面にて、予約を行いリアルタイムで
事務所側画面に結果を反映させようとしています。
DBは事務所側のサーバに置いてあります。
この時、急にユーザー側画面のレスポンスが悪くなることで困っています。
ユーザー側画面ではなにもロジックを入れておらず、
入っているロジックは数分に一度のDB更新処理のみです。
レコードロック?とも思いましたが、レコードへのアクセスは数分に一度ですので、
関係ないのではと思います。
MDBも分割しております。
レスポンスが悪くなる理由として、
レコードロック以外に考えられるものはありますか?
0307デフォルトの名無しさん
2005/04/15(金) 11:18:40ぱっと思いつくのは SetWindowsHookEx(WH_KEYBOARD, 〜) なんだけど
VBAでやると PC 激重になると思うし、アドイン作ったこと無いから
実際出来るかビミョ
>>306
どのコードで、遅くなるの?
まずは、その部分の、解析汁!
0308302
2005/04/15(金) 15:33:27レスありがとうです。
最終的にはそれしかないかな、と思っているのですが
その前に実は API 使わずいけるのでは!?と思い書き込ませていただきました。
ひとまず、>>304 の KeyHook アドインで何とかなりましたが
やっぱり他のアドインとの OnKey 取り合いは避けられないし
API でフックするしかないかなぁ…。
API フックは昔、一度やっただけなので思い出しながら作ってみて
できたら体感速度とかレポします。
0309デフォルトの名無しさん
2005/04/15(金) 18:03:04変更できません、イミディエイトウィンドウから
Application.ScreenUpdating=False
のように打ち込んだ直後に
print Application.ScreenUpdating
True
となります。
プログラム文中にかいても同じですが、何故変更できないのでしょうか?
新規にブックを開いてこういう状態です。
0310デフォルトの名無しさん
2005/04/15(金) 18:33:060311デフォルトの名無しさん
2005/04/15(金) 21:03:22Sub Hoge()
Application.ScreenUpdating = False
Debug.Print Application.ScreenUpdating
End Sub
これで、実行しても True って表示されるの?
ちなみに、 ScreenUpdating は VBA 実行中じゃないと False に設定出来ません。
(というか、Excel が True に戻す)
0312デフォルトの名無しさん
2005/04/16(土) 01:33:50文章末尾に到達したことを知るにはどうすればいいのでしょう?
ワードでマクロを使って文章内の特定の単語に色をつけています。
とりあえず、単語ごとに50000回くるくる回しているのですが、
時間がかかってしまいます。
文章末尾に到達したことがわかれば、そのループを終えて、次のループに
移ることができると思うのです。
0313デフォルトの名無しさん
NGNGFor Eachで回せばいいんじゃない?
0314デフォルトの名無しさん
2005/04/18(月) 18:14:27どうしたらいいのでしょうか?
CreateObjectで取得したオブジェクトが変数IEに入っているとして、メソッド
navigateでページを表示できた状態で、そのページ全体のHTML文を取得する
どうすればいいのですか。
多分、
IE.Document.body
の後ろに適当なプロパティを指定すればよさそうにおもうのですが、それがわかりません。
フォームのタグ類の制御はできているのに、こんな簡単そうなことでもう数時間
はまってますorz
また、IEのオブジェクトの階層構造、メソッド、プロパティを分かりやすくまとめた
サイトがあったら教えて下さい。MSDNは見たけど、必要な情報にたどり着けません
でした。
0315デフォルトの名無しさん
NGNGConst URL = "http://www.yahoo.co.jp/" 'ここに取得したいHPを記入
Dim objHTTP As Object, sHTTP As String
Set objHTTP = CreateObject("MSXML2.XMLHTTP")
Call objHTTP.Open("GET", URL, False)
objHTTP.Send
sHTTP = objHTTP.ResponseText
Debug.Print sHTTP
End Sub
「VB MSXML」で調べると分かりやすかも・・・
0316デフォルトの名無しさん
2005/04/18(月) 20:50:29キーボードマクロでは記録されなくて・・・
よろしくお願いします。
0317314
2005/04/18(月) 21:35:46早速のご丁寧なご教示ありがとうございます。
これはHTML(XML)を本格的にパースする用途に使うと便利そうですが、私の場合、VBA
でフォームに自動で応答するために、たとえば単に、
Set objIE = CreateObject("InternetExplorer.Application")
objIE.Navigate "http://hogehogehoge.co.jp"
Set input_list = objIE.document.all.tags("input")
For Each i In input_list
If i.Name = "cd" Then
i.Value = code
End If
If i.Name = "btn1" Then
i.Click
Exit For
End If
Next
なんてことをしているだけでして、その過程で、単にタグデータではない普通のテキスト
部分を読みたいだけなのですが、上記のようなオブジェクト(objIE)を使ってテキスト
部分を簡単に読むにはどうしたらよいのでしょうか?
0318314
2005/04/18(月) 22:21:31objIE.document.body.innerHTML
でHTMLを取得できました。
315さんはじめ、皆さん、お騒がせしました。
0319302
2005/04/21(木) 14:08:52しかし SetWindowsHookEx() の件は、
自分が勝手に勘違いしている部分があったようで
実際には使えなさげな気がしてきました。
(フックしても、それをアドイン側へ通知する手段が無い?)
う〜ん…何とか OnKey 以外の方法
(他所のアドインとキーを取り合わない方法)
でキー押下を検知する方法はないかなぁ…。
0320デフォルトの名無しさん
2005/04/21(木) 16:53:07行方向に例えば、A1〜A100まで連番をつけ、
A100まで到達したら、B1に移り、B100まで連番を振る、
この場合はA100の値とB1の値は+1の増加です。
といった記述式が思い浮かびません。
どうしたらよいのでしょうか?
0321デフォルトの名無しさん
2005/04/21(木) 17:26:33Dim i As Byte, j As Long, n As Long
Application.ScreenUpdating = False
n = 1 '開始番号
For i = 1 To 2
For j = 1 To 100
Cells(j, i).Value = n
n = n + 1
Next j
Next i
Application.ScreenUpdating = True
0322デフォルトの名無しさん
2005/04/21(木) 17:34:20ちなみにこうや
For i = 1 To 2
For j = 1 To 100
Cells(j, i) = j + 100 * (i - 1)
Next
Next
こうもできる
For i = 1 To 200
Cells(((i - 1) Mod 100) + 1, (i - 1) \ 100 + 1) = i
Next
数式というなら =ROW()+(COLUMN()-1)*100
0323デフォルトの名無しさん
2005/04/21(木) 17:37:08連番というだけで、開始番号が1だとは言ってないことに気づけ。
まあ、どんな値でもその式に当てはめられるけどそこまでするメリットはほとんど無い。
0324デフォルトの名無しさん
2005/04/21(木) 17:41:390325デフォルトの名無しさん
2005/04/21(木) 18:06:19これで長年の疑問が解けました。
0326デフォルトの名無しさん
NGNGSet y = Range("A1:B100")
i = 1 '初期値
For Each x In y
If x.Column = 1 Then
x.Value = i
i = i + 1
ElseIf x.Column = 2 Then
x.Value = x.Offset(, -1).Value + 100
End If
Next
For Eachだとこんな感じかな?開始から終了までの行数を
加えればいいので、もっと一般化できますね・・・
0327デフォルトの名無しさん
2005/04/21(木) 18:17:43すみませんアンカー抜けて、しかも半角シフト
全て詰められてしまいました…一応再度報告、、、
Dim x As Range, y As Range, i As Long
Set y = Range("A1:B100")
i = 1 '初期値
For Each x In y
If x.Column = 1 Then
x.Value = i
i = i + 1
ElseIf x.Column = 2 Then
x.Value = x.Offset(, -1).Value + 100
End If
Next
0328320
2005/04/21(木) 18:24:29Dim i As Integer
Dim j As Integer
Dim n As Integer
n = 1
For i = 1 To 10
For j = 1 To 10
Cells(i, j).Value = n
n = n + 1
Next
Next
行方向に1ずつ増加せずに、列方向に1ずつ増加してしまったのです・・・
どこがいけなかったのでしょうか?
0329デフォルトの名無しさん
2005/04/21(木) 18:31:37Dim x As Range, i As Long
i = 1 '初期値
For Each x In Range(Cells(1, 1), Cells(2, 100))
Cells(x.Column, x.Row).Value = i
i = i + 1
Next x
範囲と行・列の両方を反転させればいいだけ。
これもx.Columnとx.Rowを計算に掛ければ変数 i は無しでも行ける。
範囲を数値指定ではなく文字指定にすると反転させるのが面倒かもしれないけど
Cellsで始点と終点を指定する方法なら反転も簡単。
指定範囲と作業範囲が異なるという邪道な方法ではあるけど、それが理解できてれば問題ないし。
>>328
Cellsの i と j が逆。
0331デフォルトの名無しさん
NGNG凄い綺麗な形にまとまるんですね。
やっぱり知識よりも、こういう知恵というか発想力が
凄い人は素直に尊敬します。
0332デフォルトの名無しさん
2005/04/21(木) 19:38:500333デフォルトの名無しさん
2005/04/21(木) 19:48:300334デフォルトの名無しさん
2005/04/21(木) 19:50:03いや別に嫌みじゃないんじゃない?
ところでFor Eachの使い方がよく分からん・・・
0335デフォルトの名無しさん
2005/04/21(木) 20:11:35For Eachの方が若干高速だし、邪道何て事はないよ。むしろ本筋のような?
>>329
は面白いけど行数多いと困るね。
正統に書けば下記のような感じ。範囲について応用効くし。
i = 1 '初期値
objRange = Array(Range("a1:a100"), Range("b1:b100"))
For Each y In objRange
For Each x In y
x.Value = i
i = i + 1
Next x
Next y
0336デフォルトの名無しさん
2005/04/21(木) 20:32:33おまけ
i = 1 '初期値
Set objRange = Range("a1:a100")
For Each x In objRange
x.Value = i
x.Offset(, 1).Value = i + objRange.Count
i = i + 1
Next
0337デフォルトの名無しさん
2005/04/21(木) 23:13:34>>333は騙された馬鹿
0338デフォルトの名無しさん
2005/04/21(木) 23:43:10実際のところどうでしょう?
やはり楽に以降できましたか?
0339デフォルトの名無しさん
2005/04/22(金) 07:45:13さあ、早くマクロを自動記録する作業に戻るんだ。
0340デフォルトの名無しさん
2005/04/22(金) 10:36:55は面白いけど列数多いと困るね。
正統な方法でもないし。
0341デフォルトの名無しさん
2005/04/22(金) 18:00:48そろそろファイナルアンサー頼む
0342デフォルトの名無しさん
2005/04/22(金) 19:05:04Excelについてなのですが、今
「Workbook_BeforeClose」に「Thisworkbook.saved=True」「Application.DisplayAlerts」
と記述しています。
それで「×」ボタンをクリックしたら強制的にブックを閉じるようにしたいのですが
ブック上にコントロール(たとえばチェックボックス)を配置してそれをいじると
なぜか「×」をクリックしたときに変更内容を保存しますかというメッセージがでます。
どうやったらこれをでなくできるでしょうか。
0343デフォルトの名無しさん
2005/04/22(金) 19:05:560344デフォルトの名無しさん
2005/04/22(金) 19:44:36それもそうだな。For Eachにとらわれたのは失敗だった。
普通に書くならループ不要の.DataSeriesが明らかに高速だった。
For Each使うなら.columns使えば良いが蛇足だな。
0345デフォルトの名無しさん
2005/04/23(土) 15:17:56ていうかほとんど全くないの?
0346デフォルトの名無しさん
2005/04/23(土) 19:52:480347デフォルトの名無しさん
2005/04/23(土) 20:24:28それすごく欲しいけど品切れで無念・・・
0348デフォルトの名無しさん
2005/04/23(土) 23:32:10そういうことは出来ますでしょうか?
スレ違いすいません・・・VBScriptのスレがないんです・・・
0349デフォルトの名無しさん
2005/04/24(日) 00:10:21うーん、うちのExcel2002ではチェックボックス触って×で閉じても
確認ダイアログ出なかったけど。。
0350デフォルトの名無しさん
2005/04/24(日) 10:10:18お前ら、wsh使ってますか? Part4
http://pc8.2ch.net/test/read.cgi/win/1100489339/
WSH(・∀・)スレッド!
http://pc8.2ch.net/test/read.cgi/tech/1055075469/
0351デフォルトの名無しさん
2005/04/24(日) 11:24:23あぁ!WSHか!ありがとうございました
0352デフォルトの名無しさん
2005/04/24(日) 22:18:12ExcelVBAで作ったグラフをPowerPointにそのまま吐き出すことはできるんでしょうか?
吐き出す、というか、VBAでグラフをExcelからPowerPointにコピー&ペースト?になるのかな。
ぐぐってみたんですが、キーワードが悪いのか参考になるサイトが見当たりませんでした。
ヒントや、参考になるサイトがあったら教えてください。
0353デフォルトの名無しさん
2005/04/25(月) 01:16:262004/04
が入っていて、これを
2004
04
に分けてダイアログのテキストボックス2箇所に振り分けたいのですが、
テキストボックス2箇所に振り分ける方法が分かりません。
助けてください。
0354デフォルトの名無しさん
2005/04/25(月) 01:53:58Dim i As Integer
Dim A As String, B As String
Const C = "2004/04"
i = InStr(C, "/")
A = Mid(C, 1, i - 1)
B = Mid(C, i + 1)
0355デフォルトの名無しさん
2005/04/25(月) 02:40:02いやはやたったこれだけの行数が理解できてないっす。
1週間程度の知識なのでまだまだっす。
教えていただいた情報を元に勉強してくるっす。
ありがとうございました。
0356デフォルトの名無しさん
2005/04/25(月) 05:49:32>>354のはAとBに分割した値が入るけど
Dim A As Variant
A = Split("2004/04", "/")
とすればA(0)とA(1)に分割した値が入る
単純分割ならこっちがオススメ
0357デフォルトの名無しさん
2005/04/25(月) 10:58:530358デフォルトの名無しさん
2005/04/25(月) 11:30:190359デフォルトの名無しさん
2005/04/25(月) 15:36:52よろしくお願いします。
0360デフォルトの名無しさん
2005/04/26(火) 01:27:26自分のファイルで思い描いた動作をしてくれましたよーっ
助かりました。
ありがとうございました。
ただ、>>357 さんが言っていることを他のサイトでも読んだので、
>>354 さんのも使えるように勉強するとです。
自分の行っている会社も97、2000、XP、2003とバラバラにあるので、
対応できるようにしたいと思います。がんばる。
0361デフォルトの名無しさん
2005/04/27(水) 08:14:230362デフォルトの名無しさん
2005/04/27(水) 08:27:270363デフォルトの名無しさん
2005/04/27(水) 09:46:02参考までに
Excel2000Split関数の代替
http://www2.moug.net/cgi-bin/technic.cgi?exvba+TI10010010
0364デフォルトの名無しさん
2005/04/27(水) 15:20:51Display.AlartとQuitはMSNで確認しました。
教えてくださいませ
0365とうしろ
2005/04/27(水) 17:24:22たとえば
種類種類コード個数
りんご120
ばなな330
メロン25
イチゴ250
すいか13
というシートから
コード別に他のシートに移すマクロを
組みたいんですが、filter関数を使えばいいという
ことはわかったんですが、そのあとどうしたらいいのか
よくわかりません。
どんなコードを書いたらいいのでしょうか?
vba使ったことないのに先輩にいきなりいわれて困り経ててます。
どうかおねがいします
0366とうしろ
2005/04/27(水) 17:32:38種類 種類コード 個数
りんご 1 20
ばなな 3 30
メロン 2 5
イチゴ 2 50
すいか 1 3
使用しているのはexcel2000です。おねがいします。
0367デフォルトの名無しさん
2005/04/27(水) 18:04:12Filterなんて使わなくても
For i = 2 To Cells(65536, 2).End(xlUp).Row
とかで、
Worksheets("種類コード" & Cells(i, 2).Value)…
とか
Select Case Cells(i, 2).Value
Case 1:
End Select
とかで振り分ければいいだけでしょ。
というかVBAわからないなら、種類コードの列でソートするなり
オートフィルタ使うなりして手動でコピペしなよ。
ここはVBAが全くわからない人がコードをねだるスレじゃなくて
VBAを有る程度わかってる人がヒントを貰うスレだから。
0368とうしろ
2005/04/27(水) 18:11:21回答ありがとうございます。
ご指摘のとおりなんですが、この作業が毎日あって、実際にするのが
おばちゃんなんですよ。それで自動化するようにって指示でした。
0369デフォルトの名無しさん
2005/04/27(水) 18:23:55んじゃがんばれ
0370デフォルトの名無しさん
2005/04/28(木) 01:37:01うおぉーっ、助かりますよーっ
ありがとうございます。
しっかり勉強するとです。
0371デフォルトの名無しさん
2005/04/28(木) 02:04:11ありがとうございます。
一からやらないとだめみたいです。
0372デフォルトの名無しさん
2005/04/28(木) 05:19:32VBAで16進数の扱いについて質問なんですが、
MsgBox 255 = "&HFF"
If "&HFF" = 255 Then
Select Case "&HFF"
Case 255
End Select
とした場合、Select Caseでのみ"偽"となります。
試しに
Dim FF As Variant
FF = "FF"
として「"&HFF"」を「"&H" & FF」に置き換えると
Select Caseでも"真"に成りますが、変数の型がStringだとやはり"偽"です。
MsgBoxとIfでは変数の型がVariantでもStringでも"真"に成ります。
ちなみに「Case 255」→「Case Is = 255」でも真偽の結果は変わりません。
またまた試しに
Select Case 255
Case "&HFF"
End Select
としてみると何故か"真"になります。
もちろんSelect Caseの条件に、Byte型変数に一度格納した"&HFF"を当てたり
ValやCByte等で変換した物を当てたりすれば"真"が返りますが、
"&HFF"という文字列と255という数値が一致するかという同じ条件の時に
何故Select Caseだけ真偽の結果が違うのでしょうか?
また、何故条件と分岐結果を入れ替えると真偽が変わるのでしょうか?
詳しい方、理由を教えてください。
0373デフォルトの名無しさん
2005/04/29(金) 12:27:16標準モジュールのリストを取得するにはどうすればよいですか。
0374デフォルトの名無しさん
2005/04/29(金) 17:34:55そういう話ではない?
0375デフォルトの名無しさん
2005/04/30(土) 14:23:5125歳、事務員です。
0376デフォルトの名無しさん
2005/04/30(土) 14:34:10不利になることはない。
ただ、有利にならない場合もあるし
どのくらい有利かは時と場合と職種と運による。
まあ、VBA使える奴なんて腐るほど居るし、
勘のいい奴なら数日で簡単なものは書けるようになっちゃうからね。
「Excel使えます」=「VBA使えます」みたいなものだし。
VBA覚えたからと言って、あまり期待しない方がいい。
0377デフォルトの名無しさん
2005/04/30(土) 15:20:521行しか表示できない…
0378デフォルトの名無しさん
2005/04/30(土) 15:24:59どういう検索の仕方をしてるのかわからないと何にも言えない。
とりあえず検索結果1件をリストボックスに表示するコードを
ここに貼って見ろ。修正してやるから。
0379デフォルトの名無しさん
2005/04/30(土) 15:32:46Excel VBAは使えるがExcel関数は素人。
俺はExcelが使えるとはおこがましくて言えない。
0380デフォルトの名無しさん
2005/05/01(日) 02:59:29何とか自分でできました。
でも、ありがとう。心強かったよ。
0381デフォルトの名無しさん
2005/05/12(木) 22:18:520382デフォルトの名無しさん
2005/05/12(木) 22:52:12Sub Macro1()
Const 文字列 = "1000μSec"
Dim 数字, 単位
数字 = Val(文字列)
単位 = Mid(文字列, Len(数字) + 1)
MsgBox "数字は「" & 数字 & "」 単位は「" & 単位 & "」"
End Sub
0383デフォルトの名無しさん
2005/05/14(土) 20:33:11プログラムが大きくなってきたので、下記のようにモジュール別に分けたいのですが、
実行すると、call文の直後「コンパイルエラー: SubまたはFunctionが定義されていません。」
が出てしまいます。
モジュールを分ける時にはどういうルールがあるのでしょうか?
今はただ「挿入」から「標準モジュール」を選んだだけです。
[Module1]
Sub M1()
call M2
:
End Sub
[Module2]
Public Sub M2()
:
End Sub
0384デフォルトの名無しさん
2005/05/14(土) 21:18:33エクセルのバージョンは?
俺は前の会社でexcel97で作ったときは
[Module2].〜として実行したけど、
他社でexcel2000で作ったときはそういうことせずに
単に
call 〜 でしてた。
それ以上のことは俺にも判らない。
0385デフォルトの名無しさん
2005/05/14(土) 21:43:46バージョンは2002です。
単にcallでOKとのことで今もう一度確認したら、
Module1で宣言した変数を参照しようとしたことでエラーになって
たようです。見落としてました・・・。
どうもありがとうございました。
0386デフォルトの名無しさん
2005/05/20(金) 17:56:45TYPEステートメントってネストする場合、同一名称の変数名って使えない
のでしょうか?
例)
Type aho
aaa As String
bbb As String
ccc As String
zzz As String
End Type
Type hogehoge
mogemoge As aho
zzz As String <---同一名だけど構造体のメンバとしては違う変数になると思うのだけど。
End Type
誰か教えて下さい。
0387デフォルトの名無しさん
2005/05/20(金) 18:15:36逝けますた。
0388デフォルトの名無しさん
2005/05/23(月) 14:43:29SetTimerを使用すればできるようなことを聞いたのですが、具体的な記述の仕方が分かりません。
どなたかSetTimerの設定方法をご存知ないですか?
0389デフォルトの名無しさん
2005/05/23(月) 18:57:29つ http://www.google.co.jp/
0390デフォルトの名無しさん
2005/05/23(月) 20:42:371つのWorkbook内に別ファイルの関数ライブラリを参照できるのでしょうか?
WorkbookObjectにコードを書き込み、
そこから別ファイルの共通関数ライブラリを参照したいのですが。
つまり複数のxlsファイルから、共通の外部プログラムを参照したいのです。
0391デフォルトの名無しさん
2005/05/24(火) 13:52:53変数を使ってアクティヴにしたいのですが、
・変数宣言
・変数への格納
・呼び出し方
が分かりません。
当方、下記のようにしてみましたが・・・だめです。
dim filename as string
・
filename = activebook.filename
・
window(filename).activate
初心者質問で申し訳ありませんが、
アドバイスの程、宜しくお願いします。
0392デフォルトの名無しさん
2005/05/24(火) 17:47:21Dim filename As String
filename = ActiveWorkbook.Name
Workbooks(filename).Activate
こんな感じ。
0394デフォルトの名無しさん
2005/05/26(木) 21:38:53UserForm上に直線を配置するにはどうすれば良いでしょうか?
教えて下さい。よろしくお願い致します。
0395デフォルトの名無しさん
2005/05/26(木) 22:02:55直線の画像を入れる
0396デフォルトの名無しさん
2005/05/27(金) 05:48:29具体的には、
・・・
ActiveChart.SetSourceData Source:=Sheets("ぬるぽ").Range("P1:P652"),・・・
このぬるぽってところを今開いているシートにしたいです。
今まではファイルが変わるたびにエディタを開いてぬるぽのところを変えていました。
説明下手ですいません。教えてください。
0397デフォルトの名無しさん
2005/05/27(金) 06:38:14禿しくワロタ
そんあことしてる奴も居るのかw
0398デフォルトの名無しさん
2005/05/27(金) 10:08:59ActiveSheetプロパティとかSheetsクラスとか
0399デフォルトの名無しさん
2005/05/27(金) 18:17:390400デフォルトの名無しさん
2005/05/27(金) 21:27:04エクセルVBAで伝票発行(連続帳票)のマクロ作ってるんですが、印刷の段階でつまずいてます。
用紙サイズが特殊で、ページ設定の規定のリストに無く、ユーザー定義項目も無いプリンタなんですが、
うまい方法ないですか?
ちなみにVBA始めて5日のド素人です。
よろしくお願いしまっす
0401デフォルトの名無しさん
2005/05/27(金) 21:42:570402デフォルトの名無しさん
2005/05/28(土) 10:30:38http://www.microsoft.com/japan/msdn/officedev/officexp/odc_acc10_printers.asp
この辺を駆使することになるんじゃねーの?
0403デフォルトの名無しさん
2005/05/28(土) 15:19:05下記のようにセルの中に数字が入っているとします。
1行 きんたま
2行 きんたま
3行 きたんま
4行 たんきま
5行 たんきま
6行 たんきま
7行 たんきま
8行 たんきま
9行 まきんた
これを1行目にカーソルを重ねた状態で、
下記のように同じ値のセルを結合させるマクロを考えております。
1行
2行 きんたま
3行
−−−−
4行
5行
6行 たんきま
7行
8行
−−−−
9行 まきんた
教えて君で申し訳ないですが、どなたかお願いします。
0404デフォルトの名無しさん
2005/05/28(土) 20:27:41Forで上から読んでいって
Ifで上下が同じか判断させて
上下が違う位置の一つ前までを結合、その位置を変数に格納
また同じようにifで判断させて前回変数に入れた行から
上下が違う位置の一つ前までを結合。の繰り返し
あとはヘルプでも読め。
0405デフォルトの名無しさん
2005/05/28(土) 23:03:29プログラムは全くはじめてなので、とりあえず簡単なプログラムから組んでみました。
ボタンをクリックすると、1〜50まで増えていくというものです。
Private Sub
j = 1
For ii = 1 To 10
For i = 1 To 5
Cells(ii, i) = j
j = j + 1
Next
Next
End Sub
こらをさらに、偶数と奇数に分けたいのですが、どうやればいいのか分からないです。
・もう一つボタンを作り、クリックすると奇数と偶数で上下or左右にわかれる。
考えとしては、cells(ii,i)が2で割り切れるかどうか判定して、割り切れれば偶数、
そうでなければ奇数というやり方だと思うんですが、よろしかったら誰か教えてください。
長文失礼しました。
0406デフォルトの名無しさん
2005/05/28(土) 23:39:15Mod 演算子を使用します。詳しくはヘルプを。
0407デフォルトの名無しさん
2005/05/29(日) 04:30:10指定色を透明化、またはウィンドウ全体を透明化する物だと思いますが
SetLayeredWindowAttributes MyhWnd, RGB(0, 0, 0), 0, LWA_COLORKEY
このように使って黒を透明化できるのですが
複数色を透明化、指定色以外を全て透明化などできないでしょうか?
0408デフォルトの名無しさん
2005/05/29(日) 06:21:560409デフォルトの名無しさん
2005/05/29(日) 19:44:42取ろうとしても何もないのですが
0410デフォルトの名無しさん
2005/05/29(日) 21:05:30マクロの記録で条件付き書式の設定を取ってみるなり
ヘルプ読むなりお好きなように
0411デフォルトの名無しさん
2005/05/29(日) 22:13:30条件付き書式の設定は普通の方法じゃとれないよ。
過去ログにちょっと出てたと思うけど。
0412デフォルトの名無しさん
2005/05/29(日) 23:25:27m9(^Д^)プギャー
0413デフォルトの名無しさん
2005/05/30(月) 12:55:19adoxを使う。
http://www.microsoft.com/japan/msdn/columns/office/office10052000.asp
0414デフォルトの名無しさん
2005/05/30(月) 14:39:26PowerPoint2003をVBから操作しています。
複数のファイルのスライドをInsertFromFileで1つのpresentationにまとめて
1つのスライドショーとして表示しているのですが、
スライドの内容のコピーは出来るけど、
スライドの背景やデザインテンプレートがコピー先に反映されません。
なんとかならないでしょうか。
手動でコピペなら貼付オプションで元の書式をそのまま使うとすると
上手く行きますが、VBAではそのような操作が出来るメソッドも見つからないし、
マクロ記録などしても、その辺りはコードが出来ないようです。
PowerPoint自体のデフォルト設定でもいいので、
上記の様なことが実現出来る方法はないでしょうか。
0415デフォルトの名無しさん
2005/06/01(水) 20:02:10MOUS Master持ってるのでVBAも使いこなしたいと思ってるんですが…。
0416デフォルトの名無しさん
2005/06/01(水) 20:10:10ダメな人間はExcelを使いこなせても食うどころか収入にすら結べないだろう。
0417デフォルトの名無しさん
2005/06/02(木) 12:08:05VBAだけじゃ、やっぱり無理だと思うし、仕事の種類にもよると思う。
個人でやるのか、どこかに就職するのか。
VBAで作ったものをどこかに納品するのか、自分の仕事を効率よく行うために使うのか。
それによって全然違う。
ITに特化してないような会社なら、VBA使えると意外と重宝がられるかもね。
0418デフォルトの名無しさん
2005/06/02(木) 13:02:00VBAが使いこなせればVB、Cの転向も楽
食うと言う意味でIT系は論外だと思うけどネ
0419デフォルトの名無しさん
2005/06/03(金) 18:55:08どのようなコードをどこに書けば良いのでしょうか?
0420デフォルトの名無しさん
2005/06/03(金) 20:44:39文字列ならsubadress:="'○○'!A1"でできるけど…
ダブルクオテーションとったらビックリするぐらいエラーになってしもうた。
助けてっ!そこのエロい人
0421デフォルトの名無しさん
2005/06/03(金) 23:19:57Microsoft Visual Basic for Applications Extensibility 5.3を参照設定して、以下のコードでいかがでしょうか。Excel2000で試しました。標準モジュールに書きます。
Sub test()
Dim i, x
i = 0
Sheets.Add
For Each x In Application.VBE.ActiveVBProject.VBComponents
i = i + 1
Next
With Application.VBE.ActiveVBProject.VBComponents(i).CodeModule
.InsertLines 3, _
"Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)"
.InsertLines 4, _
"msgbox ""test"""
.InsertLines 5, _
"end sub"
End With
End Sub
0422デフォルトの名無しさん
2005/06/04(土) 11:17:50具体的にはある系列名を検索して、存在したら削除するというソースを書こうとしています。
ソースは以下のように書いています。
With Workbooks("○○.xls").Worksheets("△△").ChartObjects("グラフ1").chart
For i = 1 To .SeriesCollection.Count
If .SeriesCollection(x).Name = "系列1" Then
.SeriesCollection(x).Delete
End If
Next i
End With
上記を実行すると、.SeriesCollection(x).Nameでエラーがおきます。
エラーは「SeriesクラスのNameプロパティを設定できません」です。
デバックすると、i = 2のときに落ちています。
そこで、MsgBoxを挿入して、以下のソースを実行しました。
With Workbooks("○○.xls").Worksheets("△△").ChartObjects("グラフ1").chart
MsgBox .SeriesCollection.Count
MsgBox .SeriesCollection(1).Name
MsgBox .SeriesCollection(2).Name
End With
上記を実行すると、
まず「2」が表示され、次に「系列1」が表示され、
その次で落ちます。
以上の原因がわかるかた教えてください。
わからなくて本当に困っています。
お願いします。
0423デフォルトの名無しさん
2005/06/04(土) 14:37:49グラフは使わんからよく知らんが
削除して減っんだから逆から回せばいいんじゃねーの?
For i = .SeriesCollection.Count To 1 Step -1
外してたらスマソ
0424デフォルトの名無しさん
2005/06/05(日) 22:17:42アクティブセルから右方向の指定したセルへ移動したいのです。
ちなみに現在は下記のように記述しています
ActiveWindow.SmallScroll ToRight:=142
Range("ET5:EW5").Select
上記だと当然のことながらすご〜く下の方で編集していても
5行目へ移動してしまうので非常に使い勝手が悪いんです。
どなたかご教授いただけると幸いです。よろしくお願いします。
0425デフォルトの名無しさん
2005/06/05(日) 22:30:53アクティブセルからオフセットじゃだめです?
0426デフォルトの名無しさん
2005/06/05(日) 22:36:56早々のレスありがとうございます。
なにぶん初心者のため、オフセットがよくわかってなんです。
申し訳ありませんがとりあえず教えていただくわけにはいき
ませんでしょうか?実際動かしてみないとなんとも言えない
んで・・・・・・
よろしくお願いします
0427デフォルトの名無しさん
2005/06/05(日) 23:21:37http://www.sanynet.ne.jp/~awa/excelvba/kouza/chapt_02/007.html
0428デフォルトの名無しさん
2005/06/06(月) 00:40:33ありがとうございます。うまく編集すれば使えそうな気がします。
ところでオフセットでセルを指定するときに一番右端のセルは
指定できると思うのですが、一番右端から7列目というような
指定方法はございませんでしょうか?
もしできればご教授いただけると幸いです。よろしくお願いいたします
0429デフォルトの名無しさん
2005/06/06(月) 01:06:40ヘルプ見れば出来るようになるよ。
0430デフォルトの名無しさん
2005/06/06(月) 19:25:02入力をすればするほど、本と同じに打っててもバグが出て困ってしまいます。
何に気をつけて入力すればいいですか。
0431デフォルトの名無しさん
2005/06/06(月) 20:31:00タイプミス
0432Excel2003
2005/06/06(月) 21:32:48多次元配列の2次元目の要素数を取得したいのですが、
下記のように記述すると、1次元目の要素数しか取得できません。
Dim a_test(3, 3) As String
MsgBox UBound(a_test)
どう記述すればいいんでしょうか????
0433デフォルトの名無しさん
2005/06/06(月) 22:15:27UBound関数は1次元配列専用です。
その他、Join関数やFilter関数も一次元配列にしか使えないし、
ReDimステートメントでは多次元配列の最後の(一番右の)要素数しか変更出来ません。
これらはVBAで扱う配列の仕様なのでどうにもなりませんから、
Forステートメントでも使って求めるしかないですね。
0434デフォルトの名無しさん
2005/06/06(月) 22:15:57MsgBox UBound(a_test,2)
0435デフォルトの名無しさん
2005/06/07(火) 11:24:24現在のセル位置(A1とかB1とか)を取得する方法を教えてください。
0436デフォルトの名無しさん
2005/06/07(火) 14:17:31MsgBox Selection.Address(0, 0) '選択範囲
0437デフォルトの名無しさん
2005/06/07(火) 19:04:590438デフォルトの名無しさん
2005/06/07(火) 19:30:10ありがとうございます
マクロの記録を頼りにプログラムを組んでたのですが
どうしても出せなくて困ってました。
0439デフォルトの名無しさん
2005/06/07(火) 19:31:44ん〜こんなんじゃダメ?
Dim i As Long
i = 1
Me.ComboBox1.Clear
Do While (Sheet1.Cells(i, 1) <> "")
Me.ComboBox1.AddItem Sheet1.Cells(i, 1)
i = i + 1
Loop
0440デフォルトの名無しさん
2005/06/07(火) 19:38:47ありがとうございます。
.AddItemのあとに=とかつけてパニクってました。
感謝感激です。
0441デフォルトの名無しさん
2005/06/07(火) 23:30:24押されたコマンドボタン(セルにフィットしている)の位置を
たとえば"A1"などという形で取得するにはどうすればよいですか?
0442デフォルトの名無しさん
2005/06/07(火) 23:34:41オブジェクトの位置と、その前にあるセルのサイズ(幅、高さ)から計算すれば?
0443デフォルトの名無しさん
2005/06/07(火) 23:43:20すいません言葉が足りませんでした
私、実はexcel始めて3日目で、押されたオブジェクトの参照を
コード内でどのように手にするのかすら知りません・・・
(「ActiveSheet」みたいな感じのグローバル変数があるのでしょうか?)
それができればそいつからプロパティを引き出して計算できるということでしょうか?
0444デフォルトの名無しさん
2005/06/07(火) 23:46:080445デフォルトの名無しさん
2005/06/08(水) 10:10:12一つの範囲の数値の合計を出すのに
Cells(1, A).Value+Cells(1, B).Value+ … +Cells(1, E).Value
としてるのですが、もっとスマートに出来ないものでしょうか?
Excel上での Sum(A1:E1) のような式が無いものかと思い
書き込みさしてもらいました。
0446デフォルトの名無しさん
2005/06/08(水) 17:29:55SUM使えばいいじゃん。
使い方はヘルプでも読め。
0447デフォルトの名無しさん
2005/06/09(木) 13:18:58感じかなぁ。
Dim i As Long
Dim lngSum As Long
For i = 1 To 20
If IsNumeric(Sheet1.Cells(1, i)) Then
lngSum = lngSum + Sheet1.Cells(1, i)
End If
Next
0448デフォルトの名無しさん
2005/06/09(木) 18:02:21> 後で面手しやすいとかなら
だったらユーザー定義関数にした方がいいような気が
Function iSum(Rng As Range) As Double
Dim buf As Double, rObj As Range
For Each rObj In Rng
If IsNumeric(rObj.Value) Then buf = buf + rObj.Value
Next
iSum = buf
End Function
MsgBox iSum([A1:A20])
0449デフォルトの名無しさん
2005/06/09(木) 21:17:22iSum = Application.WorksheetFunction.Sum(Rng)
0450質問
2005/06/09(木) 21:18:54Filter()を使用して、下記のような多次元配列の2列目中の値を
検索するにはどうのように引数を指定すればいいんでしょうか??
Dim A_Rank_sort(3, 5) As String
A_Rank_sort(1, 1) = "a"
A_Rank_sort(1, 2) = "a"
A_Rank_sort(1, 3) = "a"
A_Rank_sort(1, 4) = "a"
A_Rank_sort(1, 5) = "a"
A_Rank_sort(2, 1) = "b"
A_Rank_sort(2, 2) = "b"
A_Rank_sort(2, 3) = "b"
A_Rank_sort(2, 4) = "abc"
A_Rank_sort(2, 5) = "b"
A_Rank_sort(3, 1) = "c"
A_Rank_sort(3, 2) = "c"
A_Rank_sort(3, 3) = "c"
A_Rank_sort(3, 4) = "c"
A_Rank_sort(3, 5) = "c"
Filter( ? , "abc")
0451デフォルトの名無しさん
2005/06/09(木) 21:21:24m9(^Д^)プギャー
0452デフォルトの名無しさん
2005/06/09(木) 21:25:37>
> 引数 sourcearray 内で引数 match に一致する文字列がなかった場合は、Filter 関数は空の配列を返します。
> 引数 sourcearray が Null 値であるか、1 次元配列でない場合は、エラーになります。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
とヘルプに書いてある。
一次元配列に書き出してからFilter掛けるなり、Forステートメントで総当たりかますなりお好きなように。
0453デフォルトの名無しさん
2005/06/09(木) 21:30:00さんくす!!!!!
0454デフォルトの名無しさん
2005/06/11(土) 14:06:23プログラム経験はあり
0455デフォルトの名無しさん
2005/06/11(土) 15:13:10紙媒体に拘らないならmoug.netでいいんじゃね?
0456デフォルトの名無しさん
2005/06/11(土) 15:40:110457デフォルトの名無しさん
2005/06/12(日) 11:21:16どうすれば良いですか?
0458デフォルトの名無しさん
2005/06/12(日) 11:35:250459デフォルトの名無しさん
2005/06/12(日) 16:18:39体系的に書かれた物(書こうとした痕があるもの)があるのかなぁ
VBAつーかVBだったらあるんかな
0460デフォルトの名無しさん
2005/06/12(日) 19:07:56書いてみっか
0461デフォルトの名無しさん
2005/06/14(火) 23:05:32のR1C1:R1C6の部分をFor文で
R2C1:R2C6→R3C1:R3C6→R4C1:R4C6→
という感じでループを回したいと思っています。
変数iを使って
Amount:="=Sheet1!R" & i & "C1:R" & i & "C6"
等、いろいろ試しましたが、ことごとくコンパイルエラーが出てしまいます。
どう書いたらいいのか、もし良ければ教えてください。
0462デフォルトの名無しさん
2005/06/14(火) 23:41:10なんで最低限の情報も書けないかなぁ?
0463461
2005/06/15(水) 01:48:18棒グラフにエラーバー(Y誤差範囲)をつけるときに出てきます。
もう少し詳しく言うと、棒グラフの各棒に対するエラーバーの長さがR1C1:R1C6に書いてあります。
棒グラフは何枚もあり、1枚目の棒グラフのエラーバーの情報はR1C1:R1C6に
2枚目の棒グラフのエラーバーの情報はR2C1:R2C6に…
という感じになっています。
棒グラフにエラーバーをつけるときのスクリプトは、1枚だけ書くなら
ActiveChart.SeriesCollection(1).ErrorBar Direction:=xlY, Include:= _
xlPlusValues, Type:=xlCustom, Amount:="=Sheet1!R1C1:R1C6"
で良いと思うのですが、For文を使おうとしたときに、
エラーバーの情報が書かれている範囲を一行ずつずらしていく方法がわからないんです。
うまく説明しにくいのですが、これで伝わりますでしょうか?
0464461
2005/06/15(水) 02:05:25上の問題について、別の言い方で説明させて下さい。
A1,A2,…A10のセルを順番に選択するには、
Dim i As Integer
For i = 1 To 10
Range("A" & i).Select
Next i
でいいですよね?(実際は、Range("A" & i).SelectとNext iの間に何か書いてマクロに仕事をさせる)
では、1つのセルではなく、範囲を順に選択したい時はどうすれば良いのでしょうか?
具体的には、R1C1:R1C6,R2C1:R2C6,…,R10C1:R10C6を順に選択する方法や
または、A1:F1,A2:F2,…,A10:F10を順に選択する方法が知りたいです。
ちなみに、エラーバーを書くときにはA1:F1式の書き方は使えなさそうなので、
R1C1:R1C6式の書き方での方法を、どなたかご教授願えませんでしょうか?
0465デフォルトの名無しさん
2005/06/15(水) 09:11:180466デフォルトの名無しさん
2005/06/15(水) 13:03:42>では、1つのセルではなく、範囲を順に選択したい時はどうすれば良いのでしょうか?
ヒント:Rangeオブジェクト
0467デフォルトの名無しさん
2005/06/15(水) 17:22:30ですが、下記だとちゃんと動作しません。6だけとか7だけなら大丈夫なんですが、
orの使い方がおかしいのでしょうか?
つまらない質問で恐縮ですがお願いします
If Len(Cells(行, 6)) <> 6 Or 7 Then
0468デフォルトの名無しさん
2005/06/15(水) 17:32:507の部分にも式がいる。
0469467
2005/06/15(水) 17:38:01レス有難うございます。
↓みたいに書いてみたのですがダメですた。
If Len(Cells(行, 6)) <> 6 Or Len(Cells(行, 6)) <> 7 Then
何か根本的に間違ってますか?
バカな質問なんだと思いますが、よろしくです。
0470デフォルトの名無しさん
2005/06/15(水) 17:46:28それじゃ「6以外の場合、又は7以外の場合」なので、6と7以外の数値はもちろんのこと、
6も「7以外」に該当し、7も「6以外」に該当するので全ての数値でTrueが返る。
整数値で6又は7以外ってことは、6未満と7より大きい物が該当すればいいのだから
If Len(Cells(i, 6).Value) < 6 Or Len(Cells(i, 6).Value) > 7 Then
でOKでしょ。
又はLike演算子を使って
If Len(Cells(i, 6).Value) Like "[!67]" Then
とか。
0472デフォルトの名無しさん
2005/06/15(水) 18:04:11If Not Len(Cells(i, 6).Value) Like "[67]" Then
だわさ。
0473デフォルトの名無しさん
2005/06/15(水) 22:02:04Dim i As Integer
For i = 1 To 10
Range("A" & i & ":F" & i).Select
Next i
だと ":F" の所でエラーが出てしまいます。
教えてばかりで済みませんが、お願いします。
0474デフォルトの名無しさん
2005/06/15(水) 22:15:25普通に動いてる
by WindowsXP、Excel2002
0475デフォルトの名無しさん
2005/06/15(水) 22:19:44それは And だろ。
0476デフォルトの名無しさん
2005/06/15(水) 22:34:29自分で書いた時には、スペースを全く入れずに、
Range("A"&i&":F"&i).Select
と書いていたのが、コンパイルエラーの原因でした。
ありがとうございました。
0477デフォルトの名無しさん
2005/06/16(木) 17:59:33amazonや、books.or.jp等のホームページから
からタイトル、作者、出版年、などの書誌データ
を取得する
というのをEXCELかACCESSで
実行できるようにしたいのですが、
どうすればいいでしょうか
0478デフォルトの名無しさん
2005/06/17(金) 10:22:27VBA関係ない。
どうすれば取得できるかがわかった上で
それをVBAでやるにはどうすれば良いかがわからなかったらまた来い。
0479デフォルトの名無しさん
2005/06/17(金) 19:08:49それに両方シート保護かけてます。
片方のシート保護を解除しようと
両方のシートを選択した状態でマクロで
Worksheets(1).Unprotectとやるとエラーで返ってきてしまうんです。
片方だけ選択した状態ならうまくいくんでしょうが、
現時点ではそれができなくて困ってます。
ぐぐったりしてみましたが、こういうエラーはあるらしいということしかわからず
解決法がまだわかってません。
この場合どのように回避すればよろしいでしょうか。
0480デフォルトの名無しさん
2005/06/17(金) 19:24:42すいません解決しました。
結局最初単一選択して処理が終わった後
必要な部分を選択しなおすようにしました。
0481デフォルトの名無しさん
2005/06/17(金) 21:05:40おもうけど、amazonならURLベースでの検索にも対応しているから
たんなるHTTPクライアントの作り方だけ勉強すれば終わり。とりあえず
amazonいって関連ページ読んできな。
0482名無しさん@Linuxザウルス
2005/06/21(火) 14:32:55調べた限りでは、VBAではS-JISしか無理っぽいのだが。。。
0483科学
2005/06/21(火) 19:37:22相場の予測をしようと しているものです。
初歩的なコードは入手したんですが、 自分で使えるよ
うにする技術がありません。
そこで、VBAのコードを代わりに書いて下さる方を探して
います。3万円の謝礼金も用意しています。
詳しくは私のHPまでお越しください。
http://homepage3.nifty.com/sikou-off/
0484デフォルトの名無しさん
2005/06/22(水) 23:07:07マルチポストはうざがられることぐらい知っとけ。
0485デフォルトの名無しさん
2005/06/23(木) 15:55:06ACCESSなんですが、
フォームの中にサブフォームを作って、そのサブフォームでは
テーブル(レコードセット?)1個だけを置いて表示するようにしています。
で、このテーブルのカレントレコードを見て
その後の操作でページ遷移させた先の画面で、レコードの内容を
テキストに初期表示させたいのですが・・・
サブフォームに表示させたテーブルのカレントレコードを読み取る方法が
分かりません。
[レコードセット名]![列名]
ではダメみたいだし・・・。
0486デフォルトの名無しさん
2005/06/23(木) 16:39:21「なでしこ」使えばラクだと思いますよ。
AmazonAPIキーを取得すれば、検索の自動化は許可されるとおもいますよ。
後は、なでしこで、HTTP関連、正規表現、エクセル操作関連の命令を組み合わせてプログラム。
いいものができますように。
0487デフォルトの名無しさん
2005/06/23(木) 16:54:05Me.サブフォーム名.Form.コントロール名.Value
0488デフォルトの名無しさん
2005/06/23(木) 17:15:22レスありがとうございます。
ただ、ところどころ「.」を「!」に代えないとマズイような。
で、今までずっと出来なかった原因を、
色々と言葉を代えてネットで検索してみてようやく発見しました。
サブフォームをウィザードで作った場合、
フォームの一覧で見える名前と、コードを打つ時に使うサブフォーム名が
食い違ってしまうみたいで、そこの設定を直したら
「Me!サブフォーム名.Form!コントロール名.value」
とかでいけました。
0489488
2005/06/23(木) 17:26:12>サブフォームをウィザードで作った場合、
>フォームの一覧で見える名前と、コードを打つ時に使うサブフォーム名が
>食い違ってしまうみたいで
ではなくて、
フォーム一覧からサブフォームの名前を変更したときに
デザインビューで見たときの名前までは変更がされておらず
そこの手動での修正をしていなかったので失敗していたようです。
0490デフォルトの名無しさん
2005/06/23(木) 17:42:22> ただ、ところどころ「.」を「!」に代えないとマズイような。
まずいわけじゃない。つーか、! って好きになれん。
0491デフォルトの名無しさん
2005/06/23(木) 19:47:25トリップ作成とかに使われるcrypt関数に関してですが。。
uncrypt.dllはググって入手したのですが、VBAからどの様に使えばいいのか教示戴ければ幸いです。
板違いならお詫び申し上げます。
0492デフォルトの名無しさん
2005/06/23(木) 20:03:19普通の使い方すらできないなら勉強しろ。
0493デフォルトの名無しさん
2005/06/23(木) 20:30:070494デフォルトの名無しさん
2005/06/23(木) 23:36:35って何??
0495デフォルトの名無しさん
2005/06/23(木) 23:52:57これ以上はスレ違い。
0496質問よろしくお願いします。
2005/06/24(金) 08:44:44コピー散乱を防止するために、
画面に無理やり名前を登録したいのですが。
cookieを取得して、入力する方法ってありますか?
0497デフォルトの名無しさん
2005/06/24(金) 14:16:360498デフォルトの名無しさん
2005/06/24(金) 18:26:390499デフォルトの名無しさん
2005/06/28(火) 18:34:36Excel2000でどうすればウェブクエリの対象URLに変数を指定できますか?
0500デフォルトの名無しさん
2005/06/29(水) 04:04:24クエリの操作を手動で行う
>■ボタンで停止
生成されたコード中に、自分が指定したURLが入っているので
そこを変数にすればよろし。
質問
Sub VBのバグ()
For i = 0 To 23 Step 1
今 = DateAdd("n", i * 60, 0)
If 今 = #5:00:00 AM# Then
MsgBox 今
End If
If 今 = #6:00:00 AM# Then
MsgBox 今
End If
Next
End Sub
午前5時は常無視される。なんでだろ?
0501デフォルトの名無しさん
2005/06/29(水) 05:00:40それをVBのバグとか言う奴は
浮動小数点演算について勉強しなおしてこい。
因みに
Dim 今 As Date, i As Long
For i = 0 To 23
今 = TimeSerial(i, 0, 0)
If 今 = TimeValue("5:00:00") Then
MsgBox 今
ElseIf 今 = TimeValue("6:00:00") Then
MsgBox 今
End If
Next i
とすれば普通に5:00もTrueが返るし、
If 今 = #5:00:00 AM# Then
↓
If CLng(今 * 24) = #5:00:00 PM# * 24 Then
でも5:00でTrueを返せる。
何故そうなるのかは浮動小数点演算について調べればわかる。
因みに5:00以外にもいくつか>>500のコードでTrueを返さない時間があるはずだ。
0502デフォルトの名無しさん
2005/06/29(水) 05:29:11あっ、そっか!時刻は一日を1として算出しているんだった!!
ありがとう!!!
0503デフォルトの名無しさん
2005/06/29(水) 12:42:280504デフォルトの名無しさん
2005/06/29(水) 14:14:52�@Line Inputで読み込んだ後、vbLfでSplitする
�AFSOのReadLineメソッドを使う(LFも改行扱いになります)
�Bテキストエディタで改行コードの一括置換を行う
0505デフォルトの名無しさん
2005/06/29(水) 23:58:21環境:
Excel 2000
50〜100人規模対象
やりたいこと:
データベースからデータを取得するコードを組み込んだVBAProjectを配布
データベースへアクセスするのに必要な定数(データベースのフルパスやSQL句)を後から変更できるようにしたい。
というようなことを構築中なのですが、定数をどうやって持たせるか悩んでます。
管理者あるいは引き継いだ人間が定数を容易に保守できるように、かつユーザからは容易に触れることができるように
したいのです。
サーバに置くシステムなら、ちょこちょことコードの定数定義を書き換えれば済む話ですが、Excelで配布する以上、
ユーザ任せで複製増殖しまくり、散らばった複製のコードやモジュールを差し替えるのは現実的ではありません。
目下のところ、設定ファイルに初期値を持たせるくらいしか思い当たらず、また、そのファイルをクライアントに置くか
サーバに置いて共有させるか、どちらがいいかも決めかねています。
(特に専門教育を受けることもなく自己流でやってきたので、言語の仕様はともかく、システム全体の組み方となると
どこか大事なところが欠けているような気がします。)
どういう手法を取るのが最善でしょうか?
0506デフォルトの名無しさん
2005/06/30(木) 10:18:19データベース接続以外の定数をデータベースに持たせる、、ってのは?
0507デフォルトの名無しさん
2005/06/30(木) 15:24:51………………へんじがない。 ただのしかばねのようだ……。 ▼
0508デフォルトの名無しさん
2005/06/30(木) 22:08:45参考になるかわからないがけど、うちの会社でも同じ様な状況があって。
いちおう、MSDNでは「ワークグループテンプレート」を使う方法が紹介されてる。
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/modcore/html/deovrdeployingtemplatesapplicationspecificaddins.asp
ただ、共有に関するエラーが起きるのが怖かったので、うちの会社では以下の方法を使った。
作業者は、作業開始用の.exeファイルを実行すると、サーバーからExcelファイルをそれぞれの
クライアントにコピーして、そのExcelファイルを開く。
それで、Openのタイミングでマクロが走って作業開始。
毎回サーバーからコピーするので保守の結果を反映させるのが容易だし、Excelファイルを開く
タイミングで何かマクロを仕込んだりできる。
0509505 ◆EmCZerrWa2
2005/06/30(木) 23:49:54解決にならないと思います。
>>508
.exeファイルでExcelファイルのOpen/Closeを閉じ込めるという発想ですね。
追求すれば解決の目はありそうですが、ファイルの保存先やファイルの継承利用はユーザ任せにするので、
今回の目的には向いていない面がありそうです。
(もっと言うと、コンポーネントだけ配布して、ワークシートの作り込みはユーザ任せにするつもり。)
505で書いた設定ファイル利用ですが、
・クライアントに置いた場合:設定変更はユーザが行う。設定はPC1台につき1回必要。
短所)ユーザに設定値を配布しなければならない。ユーザにスキルが必要(そしてスキルがない)。
・サーバに置いた場合;設定変更は管理者が行う。設定は全体で1回だけ。
短所)データベースの置き場所を自由にしたいがためなのに、肝心の設定ファイルの置き場所を固定しなければならない。
このあたりが迷いどころです。
RDBMSなら難しくないのですが、ユーザ任せにするためにExcel環境を選択してるのがすでに無茶でしょうか。
もっとスマートな解決方法があっても良さそうなのですが。
0510デフォルトの名無しさん
2005/06/30(木) 23:50:570511デフォルトの名無しさん
2005/07/01(金) 00:02:41ForeColorプロパティにRGB値を設定。
項目ごとに色を分けるのは、たぶん不可能。
0512デフォルトの名無しさん
2005/07/01(金) 00:18:36>あまり深く考えて質問したとは思えない。
状況をよくしりませんが、SQL句程度ならなりうると思いますよ。
0513デフォルトの名無しさん
2005/07/01(金) 00:19:38>解決にならないと思います。
状況をよくしりませんが、SQL句程度ならなりうると思いますよ。
の意。まーどーでもいいが。
0515505 ◆EmCZerrWa2
2005/07/01(金) 00:30:56あぁなるほど、SQL句はデータベース側に置けばいいかもしれませんね。
んでも、データベース接続設定はどこに置いたらいいでしょう?
これが一番やっかいなのですが。
0516505 ◆EmCZerrWa2
2005/07/01(金) 00:35:06そういう仕様が前提になっているために、安易にデータベース側(共有側)に持たせることが出来ないのです。
自由度を求めすぎかも。
0517デフォルトの名無しさん
2005/07/01(金) 06:51:25それだけはどうにもならんだろう。コードで手当たり次第接続してみるようにすることもできるが、、
あと、SQL句をユーザーが自由に、ってのはデータを破壊する可能性があることをお忘れなく。
0518デフォルトの名無しさん
2005/07/01(金) 07:36:23考えられる条件網羅のオプションや
コンボくっつけたことならある
接続設定も画面で選択・入力させたら?
0519デフォルトの名無しさん
2005/07/01(金) 08:19:310520デフォルトの名無しさん
2005/07/01(金) 10:43:19113 名前:名無しさん@そうだ選挙にいこう [] 投稿日:2005/07/01(金) 08:07:51
1083ありがとうございました!昨日ずっと悩んでいたので、助かりました!ちなみに日曜〜土曜まで何かのコントロールで表示させて日曜と土曜を赤と青にしたいのですが、何か良い方法はないでしょうか?お願いします。
0521デフォルトの名無しさん
2005/07/01(金) 15:55:550522デフォルトの名無しさん
2005/07/01(金) 16:03:20って意味だと思う。
まぁ、前の質問(510)からマルチだから
もう答える必要は無いだろ。
0523デフォルトの名無しさん
2005/07/01(金) 16:21:060524デフォルトの名無しさん
2005/07/01(金) 16:34:18ttp://www.media-k.co.jp/jiten/wiki.cgi?%A1%E3%A4%DE%A1%E4#i81
0525デフォルトの名無しさん
2005/07/01(金) 18:47:44そんなん、SQL句をもつデータベース、スキーマ、テーブルだけ固定しとけば、何も問題ないのでは?
0526デフォルトの名無しさん
2005/07/01(金) 19:54:37チェックすることは可能でしょうか?
0527デフォルトの名無しさん
2005/07/01(金) 20:22:180528デフォルトの名無しさん
2005/07/01(金) 20:25:36未だにマルチしたままだから。(向こうの質問取り下げてないし)
というかここまで無礼だとマルチ止めても(向こうの質問撤回しても)
答えたくなくなるな。
そんなに急いで知りたいなら自分でググでばいい。
1日何千回検索しようと誰も文句言わないから。
0529デフォルトの名無しさん
2005/07/01(金) 20:32:50とかでググれば代用法はいろいろ出てくる。
マルチしてる暇があったら自分で調べろヴォケ!!
0530ホームページ プロダクション
2005/07/01(金) 20:47:44弊社は出来て間もないのではじめに5人という限定で無料ホームページをお作り致します。こちら→http://www16.plala.or.jp/mercigackt/
0531505 ◆EmCZerrWa2
2005/07/01(金) 21:53:20いかんせん今までシステム化を軽視してきた会社なもんで、データベースは漫然と存在するだけ、
今後より高度なRDBMSに入れ換えて配置も整理してという段取りになる予定、しかも異動の多い会社で
いつまでも自分が面倒見るわけにもいかない、かと言って後任として育てられる人材もいない、
というような環境なので、データベースの接続設定にも保守性を確保したいと思いました。
が、やっぱり無謀ですよね。
でも、いろいろ意見を交換させてもらって、少し目指すべきものが見えかかってきました。
もうちょっと考えを練ってみます。
>>517
そういや、SQL句によっちゃテーブルのデータをいじり倒すことができてしまいますね。(;´д`)
コード中ではスナップショットでレコードセットを取得するようにしてるんですが、それでもSQL句で
データ壊すことが可能ですか?
0532デフォルトの名無しさん
2005/07/01(金) 22:10:26そろそろやめろ
0533デフォルトの名無しさん
2005/07/01(金) 22:15:18SELECT * FROM Table1; DELETE * FROM Table1; っていうSQL 打たれたら終わりだろ。テーブル構造
書き換えるようなSQL打たれたら、おまえが全責任とらされるぞ。
その程度の知識なら、ユーザーに自由度持たせるのは企業にとってはマイナスだらけだな。
0534デフォルトの名無しさん
2005/07/01(金) 22:16:20禿同。
0535505 ◆EmCZerrWa2
2005/07/01(金) 22:19:53いやもうおっしゃる通りなんですが、データベースというかSQLの知識が浅いので確認なんですが、
スナップショットでもSQLによっちゃデータあぼん、ということでよろしいんでしょうか。
0536デフォルトの名無しさん
2005/07/01(金) 22:22:51くらいの覚悟でやればいいけど、それにしても経験がないと無理。
0537デフォルトの名無しさん
2005/07/01(金) 23:56:340538デフォルトの名無しさん
2005/07/02(土) 00:12:57気にするな。
どっちにしろもう手遅れだ。
社会に出てから殺人して「人を殺しちゃいけないなんて知らなかった」が通用しないように、
2chでマナーに反する書き込みしてから「初心者なのでマナーを知らなかった」は通用しない。
今回の質問は、もう答えてもらえないから、次の質問から気を付けることだね。
何に気を付けるかは案内とか行って勉強してこい。大体これをここで聞くこと自体もかなり無礼な行為。
まあ1年も経てば今回と同じ質問しても答えて貰えるかもしれないけどな。
0539デフォルトの名無しさん
2005/07/02(土) 07:23:030540デフォルトの名無しさん
2005/07/02(土) 09:24:55マルチイクナイ
0541デフォルトの名無しさん
2005/07/02(土) 12:58:590542デフォルトの名無しさん
2005/07/02(土) 12:59:080543デフォルトの名無しさん
2005/07/02(土) 12:59:180544デフォルトの名無しさん
2005/07/02(土) 13:16:280545デフォルトの名無しさん
2005/07/02(土) 20:54:110546デフォルトの名無しさん
2005/07/02(土) 22:06:45VBスレかAPIスレ行け。
ユーザーフォームで使うにしろ、API使う物はスレ違い。
ここはVBAスレだから。
0547デフォルトの名無しさん
2005/07/02(土) 22:26:300548デフォルトの名無しさん
2005/07/02(土) 22:34:50どこが「はじめまして」なのやらw
510 :デフォルトの名無しさん :2005/06/30(木) 23:50:57
UserFormのListBoxの項目(文字)に色をつけるにはどうすればよろしいですか?お願いします。
539 :デフォルトの名無しさん :2005/07/02(土) 07:23:03
UserFormのListBoxの項目(文字)に色をつけるにはどうすればよろしいですか?日曜〜土曜を何かのコントロールで表示させて日曜と土曜を赤と青にしたいのです。
0549質問
2005/07/03(日) 14:07:14その値を表示させるマクロを書いたのですが、
msgboxで表示させると0で表示されてしまいます。
何が問題なのでしょう??
Sub FunctionTest()
Dim Ar(10) As Integer ''配列Arを宣言
fun2 (Ar) 'ファンクションプロシージャfun2を呼び出す
MsgBox Ar(0) '配列Arの0番の値を表示する
End Sub
Function fun2(x)
x(0) = 10 '10を代入する
fun2 = x '配列を戻す
End Function
0550デフォルトの名無しさん
2005/07/03(日) 16:59:42他の方法で代用すべし
0551デフォルトの名無しさん
2005/07/03(日) 17:31:55Option Explicit
Sub FunctionTest()
Dim Ar(10) As Integer ''配列Arを宣言
Call fun2(Ar) 'ファンクションプロシージャfun2を呼び出す
MsgBox Ar(0) '配列Arの0番の値を表示する
End Sub
Private Function fun2(ByRef x As Variant)
x(0) = 10 '10を代入する
End Function
0552551
2005/07/03(日) 17:45:30>>549
「値渡し」と「参照渡し」がわかってないね。
0554デフォルトの名無しさん
2005/07/04(月) 18:20:59Excel2000なんですが、フォームを使ったルーチンを組もうとしています。
1.よくインストーラなど、順を追って説明するGUIには「次へ」みたいな
ボタンがありますが、マルチページでコマンドボタンなどを押す事により
次あるいは前のページ(タブ?)へ移動するようなことは出来るでしょうか?
2. フォーム上に「キャンセル」あるいは「完了」ボタンを設けて、押す事に
よりフォームというかマクロを終了することはできますか?
(フォームを画面から消して、マクロを終了させたい)
いちいちフォームの右上とかの[x]を押さなくてもよいようにしたいのです。
Cでいうところのexit()とかがあればよいのですが。
宜しくお願いします。
0555デフォルトの名無しさん
2005/07/04(月) 18:43:331.出来ます
2.できますか
詳しくはヘルプ参照。
ググった方が早いかもしれんが。
0556554
2005/07/04(月) 18:47:46HELPにはQ1はともかくQ2はありません。具具っても見つかりません。
end subとかいう回答ならばお腹一杯です。
0557デフォルトの名無しさん
2005/07/04(月) 18:53:490558554
2005/07/04(月) 18:54:36まずいのです。
すみません。
0559デフォルトの名無しさん
2005/07/04(月) 19:14:570560554
2005/07/04(月) 20:12:290561デフォルトの名無しさん
2005/07/04(月) 20:19:021. できる
2. できる
状況がよくわからんので、これ以上のアドバイスはほとんど無理。1 は簡単だろ。 2 は、全ての
フォームを unload すりゃいいんちゃうかと思うが、設計次第ではそれでも VBA は動いてる。
0562デフォルトの名無しさん
2005/07/04(月) 21:01:21HIDE
というか、ExcelVBAをやるなら、こういうページで勉強しろ。
http://www.asahi-net.or.jp/~ef2o-inue/menu/menu04.html
0563デフォルトの名無しさん
2005/07/05(火) 22:42:34unload がこの場合は正しいような気がする。
自分は詳しくないから断定して言えないけど。
だからこの板に来ているのだけれど。
0564デフォルトの名無しさん
2005/07/06(水) 00:08:22ExcelVBAのダイアログはLoad、Unloadは勝手にやってくれるから、
ダイアログの表示、非表示は一般的にはShow、Hideを使う例が紹介されている。
初心者向けのヘルプのサンプルなんかも。
ただ、Showの前にコントロール値をセットしたい場合や、
フォームのイベントの実行のタイミングが絡んでくる場合は、
Load、Unloadを明示的に指定する必要が出てくる。
こっちを554に教えたところで理解できないだろうから。
0565563
2005/07/06(水) 00:57:020566デフォルトの名無しさん
2005/07/07(木) 22:17:45値(数値や文字列)なのか、数式なのか、配列数式なのか、を判断する方法って無いですか?
値か数式かの判断だけなら、formulaとvalueの返す値が違えば数式って判断できるけど
普通の数式と配列数式はformulaとformulaarrayのどちらで取得しても同じ値が返ってきます。
0567デフォルトの名無しさん
2005/07/07(木) 22:42:120568デフォルトの名無しさん
2005/07/07(木) 22:58:59いつまでも粘着するな
禿しくウザい
0569デフォルトの名無しさん
2005/07/08(金) 16:32:2510進数表示にしたいです。
どうすりゃよかとですか?
perlだと↓な感じ。
open (FILE, $in_filename );
seek FILE, hex("00053B49"), 0;
read (FILE, $buffer_a, 1);
seek FILE, hex("00053B5B"), 0;
read (FILE, $buffer_b, 1);
close (FILE);
$a = unpack("C", $buffer_a);
$b = unpack("C", $buffer_b);
0570デフォルトの名無しさん
2005/07/08(金) 17:16:490571569
2005/07/08(金) 17:45:42その後の読み込みの方法が?です。
Getだとseekが効かないし、Inputでできるんですかね。
Inputじゃ期待通りの値にならない。
0572デフォルトの名無しさん
2005/07/08(金) 19:02:21主にデータを送信したり、データを受信したりしたいです。
ご返信よろしくお願いします。
0573デフォルトの名無しさん
2005/07/08(金) 19:14:16できるよ。
やり方は自分で勉強してね。
たぶんVBAの本や解説サイトより、
VB6のものを参考にした方がいいだろうな。
0574デフォルトの名無しさん
2005/07/09(土) 01:29:40「三流君」でぐぐれ。
0575デフォルトの名無しさん
2005/07/09(土) 15:06:37これくらい。
0576デフォルトの名無しさん
2005/07/09(土) 16:17:07あほの諸君らにもわかるんちゃうん?こたえてみ!
0577デフォルトの名無しさん
2005/07/09(土) 16:24:35サーブルーチンは知らん
0578デフォルトの名無しさん
2005/07/09(土) 20:20:580579デフォルトの名無しさん
2005/07/09(土) 20:56:070580デフォルトの名無しさん
2005/07/10(日) 03:08:110581デフォルトの名無しさん
2005/07/10(日) 03:31:41VBAってEXCELを使った一般事務でも使うことあるの?
0582デフォルトの名無しさん
2005/07/10(日) 03:38:20マルチ、条件後出し、頻繁な催促。
2chのマナー違反をこれだけやってれば、誰も答えてくれなくて当然。
>>581
あるよ。
普通に使ってる。
表計算ソフトはマクロが使えてナンボだからね。
ワープロならまだしも、表計算ソフトはマクロ使えないうちは
「表意計算ソフト(Excel)使えます」とは言えない。
0583デフォルトの名無しさん
2005/07/10(日) 04:16:57ま、まじでか・・・orzこれから勉強するかな
サンクス
0584デフォルトの名無しさん
2005/07/10(日) 05:17:02もう解決してるよな・・・。
やったことないけどGet使えばできそうだし。HexもVBAで使えるし・・・。
できないなら興味はある。
0585デフォルトの名無しさん
2005/07/10(日) 13:54:09だれかおしえてください。
0586デフォルトの名無しさん
2005/07/10(日) 14:12:13ほかにソフトは特にいらない。
ただ、Microsoft Office用の開発環境も発売はされてる。
http://ascii24.com/news/i/soft/article/2003/09/16/645953-000.html?geta
0587デフォルトの名無しさん
2005/07/10(日) 14:42:57これだけでもVBAと同じことはできますか?
また、コードの書き方などはやはり違うものなのでしょうか?
0588デフォルトの名無しさん
2005/07/10(日) 15:09:10スレ違いですよ。
ttp://pc8.2ch.net/test/read.cgi/tech/1118072681/
0589デフォルトの名無しさん
2005/07/10(日) 15:31:590590デフォルトの名無しさん
2005/07/10(日) 18:22:301.コールバック形式のコントロールをコマンドボタンから呼び出したい。
カレンダーをフォームに貼る場合に、場所を取らない
Microsoft Date and Time Picker Control 6.0(SP4)を使いたいと思います。
しかし、このコントロールは操作をしなくても今日の日付の値を持っているようで、
毎回使用者に日付を入力させたい、という目的がある場合は、操作を見過ごされ
そうで具合が悪いのです。(操作もしていないのに値が表示されていると、
デジャブに陥るかもしれない)
テキストボックスとコマンドボタンを組み合わせ、コマンドボタンが押されたら
カレンダーがポップアップし、日付を選ぶとテキストボックスに値が出るように
したいと思います。
正直VBAはよくわからないのですが、CommandButton*_click()イベントから
このコントロールを呼び出すにはどう書けばよいのでしょうか?
2.VBA中からOSのcopyコマンドなどを呼び出せるか。
テンプレートとなるファイルを開いて加工した後、「名前を付けて保存」でも
いいのですけど、バグを入れてしまった場合にテンプレートを破壊しそうで
気持ちが悪いです。できれば予め名前を変えたコピーを作成したいと思いますが
具体的にはどう書けばよいのでしょうか?
0591デフォルトの名無しさん
2005/07/10(日) 18:38:011.
事前に非表示で配置しておいて、
ボタン押したら表示するようにすればいいだけじゃん。
具体的なやり方はググるなりヘルプ読むなりお好きなように。
2.
わざわざそんなもん呼ばなくても、VBAにもFileCopyステートメントがあるし、
DOSコマンド呼ぶよりはFSO使う方が一般的。
具体的なやり方はググるなりヘルプ読むなりお好きなように。
0592デフォルトの名無しさん
2005/07/10(日) 18:55:211. そんなやり方はググってもヘルプにもありません。
2. FSOってのは知りませんでした。調べてみます。
0593デフォルトの名無しさん
2005/07/10(日) 19:01:57> 1. そんなやり方はググってもヘルプにもありません。
うちのExcel2000のヘルプには載ってる
まぁ、あとはがんがれ
0594デフォルトの名無しさん
2005/07/10(日) 19:10:39十分ちょっとで「ありません」かよ。
そういうのは「ありません・みつかりません」じゃなくて「探してない・調べてない」って言うんだよ。
まあ、VBAの知識以前に人としての標準的な思考力があれば数秒で見つかるけど。
0595デフォルトの名無しさん
2005/07/10(日) 19:43:180596デフォルトの名無しさん
2005/07/10(日) 20:04:340597デフォルトの名無しさん
2005/07/10(日) 20:21:18おまえ、元の質問者じゃないだろ
いい加減コピペ止めろ
0598デフォルトの名無しさん
2005/07/10(日) 20:21:27スレの立て方にも問題があるんだと思うな。
まったくテンプレ張ってないでしょ。
>>596
しつこい。
アンタの質問は「ボンカレーでどう料理したらシチューができますか?」
ってきいているようなもんだ。もともとそんな機能ないんだからムリ。
0599デフォルトの名無しさん
2005/07/10(日) 20:29:240600デフォルトの名無しさん
2005/07/10(日) 20:45:24日本で大衆に認識されてるカレーとシチューは別物ですが、
料理の定義としてはカレー=シチューですが、何か?
0601デフォルトの名無しさん
2005/07/10(日) 20:47:15とりあえず色を取るためにミルクをたっぷり注いで・・・
あ、ビーフシチューでいいならまだ近いかな・・
0602デフォルトの名無しさん
2005/07/10(日) 21:19:320603デフォルトの名無しさん
2005/07/10(日) 21:44:50嘘ついじゃダメだよ。それとも無知なだけかな。
スパイスを用いた『煮込み』料理がカレーだよ。
0604デフォルトの名無しさん
2005/07/10(日) 21:51:010605デフォルトの名無しさん
2005/07/10(日) 21:56:350606デフォルトの名無しさん
2005/07/10(日) 22:11:48と書けば解決!
0608584
2005/07/11(月) 00:10:38このページを見て判断したのですが、できません?
勘
Get #1, Position, MyRecord
GetってOpenで指定したTypeによってきちんと動いてくれるらしい。
取得したい数のbyte型を宣言して、第3引数にすればできるのかな?
できないなら自分で確かめるため、perlインストールするかな。
0609デフォルトの名無しさん
2005/07/11(月) 07:23:32それは日本や欧米の定義じゃないか。
デタラメ言うな。
0610デフォルトの名無しさん
2005/07/11(月) 07:29:11日本や欧米にカレーの定義なんて無いよ
インドのカレーの定義が>>603
0611デフォルトの名無しさん
2005/07/11(月) 07:36:10イ ン ド の 味 の 基 本
http://food6.2ch.net/test/read.cgi/food/1112280678/
0612571
2005/07/11(月) 10:51:02こんな感じ。これで1Byte取れた。
Dim strREC As Byte
GetFileNo = FreeFile
Open Filename For Binary As #GetFileNo
Get #GetFileNo, 197, strREC
>>608
「Get #1, Position, MyRecord」の通りだった。Thx.
0613デフォルトの名無しさん
2005/07/11(月) 11:49:15なんかメチャ初歩的なことなんですが・・・
If IsDate(txt.Value) = False Then
MsgBox "有効な日付ではありません。", vbCritical, "日付エラー"
txt.SetFocus
Exit Sub
end if
これでtxt.Valueに19991212が入っていて
エラーメッセージが出てしまうのは何故なんでしょうか?
0614デフォルトの名無しさん
2005/07/11(月) 12:32:12"1999-12-12"
"H11/12/12"
"H11-12-12"
0615613
2005/07/11(月) 12:38:59/や-が入っていないと
そもそも日付として認識してくれないんですね。
0616デフォルトの名無しさん
2005/07/11(月) 15:31:10もう解決したようだけど・・・。
inputはVBA内部コードへ文字コード変換が入るのでバイナリには使えない。
バイナリを読む場合は、inputbを使用してbyte配列に読み込む。
dim hoge() as byte
hoge=inputb(...)
0618デフォルトの名無しさん
2005/07/11(月) 18:01:36excelは詳しくないけど、hasarrayかな?
0619デフォルトの名無しさん
2005/07/11(月) 18:39:06IsNumeric(Range("a1"))
TypeName(Range("a1").Value)
VarType(Range("a1").Value)
0621デフォルトの名無しさん
2005/07/12(火) 13:51:58テキストボックスの値をSQLでデータベースに入れようとしています。
str型変数を入れるテキストボックスなら
空欄のままでも気にせずデータベースに突っ込めるんですが、
int型変数を入れるテキストボックスだと
何かエラーになってしまうみたいです。
INT型のテキストボックスからは
データベースに空欄を入れられない仕様なんでしょうか?
0622デフォルトの名無しさん
2005/07/12(火) 14:00:140623デフォルトの名無しさん
2005/07/12(火) 14:43:18SQL 的にそうだよ。
CHAR型なんかで VALUES ("") は可。
INT型とかで VALUES () は不可。
0624デフォルトの名無しさん
2005/07/13(水) 20:23:04各セルの中に文字列が入っていればメッセージを出す下記のようなスクリプトを書いてい
ます。
If Range("a1").Value <> "" Or Null Then
MsgBox "月曜日1"
End If
If Range("b1").Value <> "" Or Null Then
MsgBox "月曜日2"
End If
If Range("c1").Value <> "" Or Null Then
MsgBox "月曜日3"
End If
こんな調子で書いていくとif〜end ifが延々と繰り返されて何だか不細工に見えます。
これをもっと見やすくまとめるにはどうすれば良いのでしょうか?教えて下さい。
0625デフォルトの名無しさん
2005/07/13(水) 20:42:49Aが空欄の時、「空白です。」,Bが空欄の時、「空白です。」・・・
と言ったような決まったメッセージを出すのかな?
それとも、
Aが空欄の時、A, Bが空欄の時、B・・・
といった1つの条件に1つのメッセージを出すのかな。
0626デフォルトの名無しさん
2005/07/13(水) 20:50:24その例通りなら
dim i as long
for i = 1 To 3
If cells(1, i).value <> "" Then MsgBox "月曜日" & i
next i
メッセージパターンが1,2,3じゃないなら、最初にメッゼージ内容を配列にでも入れておけばいい
ついでにこの場合Nullは要らないし、更にifステートメント内でのorの使い方も間違ってる
0627デフォルトの名無しさん
2005/07/13(水) 21:20:48どなかた教えてくださいorz
0628デフォルトの名無しさん
2005/07/13(水) 21:44:27labe→知らん。俺は幅の調整とスペースとかでやりくりしてたけど。
0629624
2005/07/13(水) 21:50:25レス有難うございます。
Aが空欄の場合はメッセージは出ないようにしたいと思っています。
いまテスト環境から離れてるので後で試して見ます。
有難うございました。
>>627
それは俺でも分かる。
↓な感じでどうですか?
msgbox "test" & vbLF & "test2"
labelは知らない。同じような感じでダメ?
0630624
2005/07/13(水) 21:51:350631デフォルトの名無しさん
2005/07/13(水) 21:55:020632デフォルトの名無しさん
2005/07/13(水) 21:55:34環境に左右されない。
0633デフォルトの名無しさん
2005/07/13(水) 22:06:18VBA使うのはWinとMacだけでしょ。
ならcrでもcrlfでもlfでも問題ないだろ。
msgboxではなくテキスト出力ってなら話は別だけど。
0634デフォルトの名無しさん
2005/07/13(水) 22:27:270635621
2005/07/13(水) 23:17:04レコードの中に
[ID,"1","1","0",999,999,NULL] (NULLは文字列「""」で入れたもの)
のように入っているんですが、
IDでSELECTして持ってこようとすると
「1つ以上の必要なパラメータに値がありません」
と言われてしまいます。
NULLがまずいのかと思って
COALESCE(列名,0)とかやってみましたが
「オートメーションエラーです。エラーを特定できません」
と返されてしまいました。
NULL入りのレコードをどうやって持ってくればいいのでしょうか?
>>623
どうもです。
SQL側の仕様だったんですね。
>>622
こちらに対するレスなのかどうかよく分かりませんが、
LPC(T)って何でしょうか?
ググってみたけどヨクワカラン・・・。
0636デフォルトの名無しさん
2005/07/14(木) 00:49:04全ファイルのデータを取得し、1つのCSVを作成ってできますか?
0637デフォルトの名無しさん
2005/07/14(木) 01:00:42出来るよ。
がんばってね。
0638636
2005/07/14(木) 01:31:360639デフォルトの名無しさん
2005/07/14(木) 07:14:01データベース何使ってんのかしらねーけど、
Nullだったら、他の値を入れるようにSQL文書けばいんじゃね?
ACCESSね
SELECT IIF( ISNULL(a),"a","B") AS test
FROM テーブル1;
0640デフォルトの名無しさん
2005/07/14(木) 07:15:14Access かな? VBAの問題じゃないと思う。
Access で直にSQLを打ってみて、使えるSQL文をVBAに使えば?
>>638
一つ一つのファイルを開き、データを取得し、一つのCSVに書き出します。w
0641デフォルトの名無しさん
2005/07/14(木) 08:09:57For内でWriteやPrintを使って1行目からデータ下端行までをCSVに書き出し
をForで全シートに操作、をDoとDirでフォルダ内の全ブックに操作。以上。
方法は教えたよ。あ、コード書いてってのはさすがにスレ違いだから。
0642デフォルトの名無しさん
2005/07/14(木) 15:22:01Workbooks.Open Filename:="C:\test\test.xls"
test.xlsをバックグラウンドで開きたい(目に見えないようにしたい)のですが、
どうすれば良いのでしょうか?
↓ではダメでした。
Application.ScreenUpdating = False
またマクロから別に作成したbatファイルを実行したいのですが、どうすれば
良いのでしょうか?
0643デフォルトの名無しさん
2005/07/14(木) 15:22:130644デフォルトの名無しさん
2005/07/14(木) 17:44:49Private Const LOCALE_SYSTEM_DEFAULT = 2048
Private Const LOCALE_SENGLANGUAGE = &H1001
...
GetLocaleInfo LOCALE_SYSTEM_DEFAULT, LOCALE_SENGLANGUAGE,・・・
0645デフォルトの名無しさん
2005/07/14(木) 18:35:540646635
2005/07/14(木) 19:12:37長いSQLをごっそり切り落として
問題の箇所だけ色々書き方を変えて試行錯誤してたら
なんとか予定通りに動いてくれました。
どうやら最初動かなかったのは
単純な記述ミスも混じってたっぽいです・・・。
0647デフォルトの名無しさん
2005/07/15(金) 16:26:03ファイル参照する方法はありませんか?
ワードしかない環境を想定しているので、エクセルを呼び出して利用することが出来ません。
0648デフォルトの名無しさん
2005/07/15(金) 16:46:18With Application.FileDialog(msoFileDialogFilePicker)
If .Show = True Then buf = .SelectedItems(1)
End With
Msgbox buf,,"ファイルパス"
ってのはダメですか?
0649647
2005/07/15(金) 17:00:10すいません、ヴァージョンを書かなかった私のミスです。
word2000以上を対象にしてるんで、Application.FileDialogが使えないんです。
これってxpになってからのメソッドですよね。
0650647
2005/07/15(金) 17:16:16某掲示板の過去ログに
Dialogs(wdDialogFileFind)
っていうのを見つけたんですが、
参照ダイアログ(みたいな窓)は出るものの、値を取得する方法が分かりません。
これって使い物にならないんですかね。
0651デフォルトの名無しさん
2005/07/15(金) 17:34:140653デフォルトの名無しさん
2005/07/15(金) 18:05:280654デフォルトの名無しさん
2005/07/15(金) 19:03:03ヒント:頭が悪い
0655デフォルトの名無しさん
2005/07/15(金) 19:04:14ヒント:頭が悪い
0656642
2005/07/15(金) 20:22:21知りたいのは下記二点です。
1. マクロから別のエクセルファイルをバックグラウンドで開きたい
.visible=falseとか使ってもうまくいきません。使い方が悪いのかも?
2. マクロから別に作成した.batファイルを実行したい。
どちらかでも分かる人がいたら教えて下さい。ヒントだけでも結構です。
宜しくお願いします。
0657デフォルトの名無しさん
2005/07/15(金) 20:40:161. 非表示ではなくバックグラウンドなら、他のブックをアクティブにすればいいだけでしょ。
まあ、ブックを非表示で開く方法は、マクロウィルスに使えるテクなので聞かれても答える訳にはいかないが。
2. 普通にShellで呼べばいいだけでしょ。その方法くらいは自分で調べようね。
0658デフォルトの名無しさん
2005/07/15(金) 21:01:082.system()関数
て、VCなんだけど、VBで使えたかな・・・
0659656
2005/07/15(金) 21:10:10レス有難うございます。
1. すみません。非表示にしたいのです。書き方が悪かったですね。すみません
2. ぐぐってるんですが中々ヒットしません。「VBA bat」などの気^ワードで調べてる
んですけど。。。もうちょっと調べてみます。
有難うございました。
>>658
これは私宛のレスですか?高度なので意味が分かりません。ちょっと調べてみます。
有難う。
0660デフォルトの名無しさん
2005/07/15(金) 21:10:570661デフォルトの名無しさん
2005/07/15(金) 21:20:18別にbatに限ったことじゃないでしょ。
普通に他のアプリに引数渡して起動する方法を調べればいいだけだよ。
まあ、1の方は回答貰うのは諦めよう。やりたければご自分で。
0662デフォルトの名無しさん
2005/07/15(金) 21:56:35心の広い人ですね。
0663デフォルトの名無しさん
2005/07/15(金) 21:56:36うん
0664デフォルトの名無しさん
2005/07/15(金) 22:02:25どうしたの、ボク?
0665デフォルトの名無しさん
2005/07/16(土) 01:41:38心の広い人、教えてください
0666デフォルトの名無しさん
2005/07/16(土) 01:56:590667デフォルトの名無しさん
2005/07/16(土) 02:19:33と書けば、スレ違いの質問にも答えて貰えると思ってるのかな?
0668デフォルトの名無しさん
2005/07/16(土) 07:50:32あえて言うと、Office2000よりもOffice2003の方が
オンラインヘルプの仕上がりがよいみたい。
0669今日も雑炊 ◆bKaGbR8Ka.
2005/07/16(土) 22:47:330670今日も雑炊 ◆bKaGbR8Ka.
2005/07/16(土) 22:57:20読み取り専用のままでファイルを配布して、ファイル名の変更など
されても読取専用のままにしたいのです。
実際にファイルをダブルクリックして開くのもマウスの左ボタンで
ファイルのプロパティからプロパティを変更するのもどちらも開くに
なるのでしょうか?プロパティから読み取り専用属性を変更したら
これはファイルを開いたことになるのでしょうか?
0671デフォルトの名無しさん
2005/07/16(土) 23:27:36君はこっちだ
http://pc8.2ch.net/pcqa/
0672デフォルトの名無しさん
2005/07/17(日) 00:23:18こっちだろ
0673今日も雑炊 ◆bKaGbR8Ka.
2005/07/17(日) 00:26:410674デフォルトの名無しさん
2005/07/17(日) 04:18:02「ひらがな」と「カタカナ」だけは区別したい場合ってどうすればいいんでしょう?
もしそれ用の関数等を作成しなければいけなかったりしたら死亡なんですが・・・。(;´Д`)
0675デフォルトの名無しさん
2005/07/17(日) 12:27:39教えてください。
0676デフォルトの名無しさん
2005/07/17(日) 12:37:49マルチ
0677デフォルトの名無しさん
2005/07/17(日) 12:39:02かなとカナが混じってる場合はどうする?
0678デフォルトの名無しさん
2005/07/17(日) 12:42:220679デフォルトの名無しさん
2005/07/17(日) 13:35:080680デフォルトの名無しさん
2005/07/17(日) 14:39:59なんだお前のことか(笑い)
0682デフォルトの名無しさん
2005/07/17(日) 15:22:18いや、おれのことだろ?
0683デフォルトの名無しさん
2005/07/17(日) 19:32:22・1/1000秒単位で指定できる。
・停止中CPUを喰わない
・停止中シートやユーザーフォームの操作が出来る
の3つを満たしてる方法って無いですか?
OnTimeやWaitは1秒単位だし、APIのSleepは操作が出来なくなる。
Timer関数を使ってループを組む方法はCPU喰いまくり。
何か他に良い方法は無いのでしょうか?
0684cプログラマ
2005/07/18(月) 19:12:01c言語:break →VBA:exit for だが
c言語:continue→VBA:???
continueってVBAではなんなの?
0685デフォルトの名無しさん
2005/07/18(月) 19:15:23ない
0686cプログラマ
2005/07/18(月) 19:16:43嘘だろ!?
0687デフォルトの名無しさん
2005/07/18(月) 19:21:070688cプログラマ
2005/07/18(月) 19:25:28代用方おしえてちょ。
For cnt = 1 To 100
wkCelVall = Cells(cnt, 1).Value
If wkCelVall = "" Then
★★★ここでcontinueしたい!
Else
Cells(cnt, 1).Value = ""
End If
Cells(cnt, 1).Value = "aaa"
Next cnt
0689デフォルトの名無しさん
2005/07/18(月) 19:36:570690cプログラマ
2005/07/18(月) 19:46:26使うしかないか。
0691デフォルトの名無しさん
2005/07/18(月) 19:50:35つーか、その例通りなら、
If文ちょこっと弄るだけで済むやん。
つーか、Elseの場合
>Cells(cnt, 1).Value = ""
としても、直後に
>Cells(cnt, 1).Value = "aaa"
ってしてたら意味無くないか?
おまえ、本当にマなの?
それとも情報小出しにしてるとか?
0693デフォルトの名無しさん
2005/07/18(月) 20:00:240694デフォルトの名無しさん
2005/07/18(月) 22:52:520695デフォルトの名無しさん
2005/07/19(火) 08:05:120696デフォルトの名無しさん
2005/07/19(火) 19:03:22エクセルマクロで特定の文字列を置換し、セル中の置換後文字列のみを太字や斜体にしたいのですが。
セル全体は出来るようですが、一部分の変更が上手く出来ません。
また、置換後の文字列の長さは不特定なので、桁数指定も出来ません。
すみませんが、よろしくお願いします。
0697デフォルトの名無しさん
2005/07/19(火) 19:19:51ヒント:マクロの記録
0698デフォルトの名無しさん
2005/07/19(火) 20:02:50ttp://www.excel7.com/personal/personal1-4.htm#index21
0699698
2005/07/19(火) 20:05:29ちょwwwww
よろ。
0700デフォルトの名無しさん
2005/07/20(水) 12:40:19C言語の事はよくわからんが
Exit Forじゃ、駄目なのか?(Forステートメントを途中で終了)
0701デフォルトの名無しさん
2005/07/20(水) 12:47:46End Ifとかある
On Error GotoやらResume,Resume Nestやら・・・
C言語にもあると思うが・・・
見当違いだったらスマン
0702デフォルトの名無しさん
2005/07/20(水) 13:06:39私は688じゃないけど、
continueは「一回だけ」下流の処理をとばして、次のFor〜Nextをまわす処理です。
Exit Forでは、For〜Next処理全体が終了するので、代用にはなりません。
0703デフォルトの名無しさん
2005/07/20(水) 13:47:24処理
┌──Exit For
│┌─continue
││ 処理
│└→
│ next
└─→
0704デフォルトの名無しさん
2005/07/20(水) 16:49:26なるほど・・・VBAにはもしかしたらcontinueの代わりは無いかも
自分ならその場合は
If cnt <> 1 Then
とか
If wkCelVall = "" and cnt > 1 Then
とかでで切り抜けるかな・・・
0705デフォルトの名無しさん
2005/07/21(木) 10:09:10ExcelVBAでArrayListを使いたいのですが、デフォルトではコンパイルが通りません。
アドインすればいいのかと思うんですが、ヘルプを読んでも、オブジェクトブラウザを
検索しても、ArrayListのキーワードではヒットせず、ぐぐっても、見つかるソースでは
当たり前のように使っているため、困っています。
何を引っ張ってくれば使えるようになるんでしょうか?
ご教授願います。
OSはWindows2000、Excel2003です。
0706デフォルトの名無しさん
2005/07/21(木) 11:41:120707デフォルトの名無しさん
2005/07/21(木) 12:11:09まず、ArrayListとはどう言った物かを
コードなりを踏まえて説明しないといけません。
>ArrayListのキーワードではヒットせず
私の頭の中でもヒットしません。
おそらく、誰の頭だろうがヒットしないでしょう。
……何か勘違いしてると思うよ。
君の中でのArrayListとは何か、まず説明しなさいって……
0708デフォルトの名無しさん
2005/07/21(木) 12:31:21VBAで使えるなんて話、聞いたこともない。
個人的な自作関数名や変数名として
"ArrayList"という名前を使ってる奴とかは居るかもしれないけど。
0709デフォルトの名無しさん
2005/07/21(木) 14:28:07なるほど、じゃあ検索してヒットしたのは、多分.NETのサイトなんでしょうね。
とりあえずVBAでは使えないということが判ったのは助かった。
自作しますわ。
0710デフォルトの名無しさん
2005/07/21(木) 20:07:590711デフォルトの名無しさん
2005/07/22(金) 00:04:58どんな場合でしょうか。
0712デフォルトの名無しさん
2005/07/22(金) 09:58:060713デフォルトの名無しさん
2005/07/22(金) 10:21:28ActiveCellやActiveSheet.Rangeの場合はActiveWorkbook。
別に調べるまでもないと思うが。
0714デフォルトの名無しさん
2005/07/22(金) 16:28:13値を貼り付け(369)や書式を貼り付け(370)を追加しているんですが
「罫線以外を貼り付け」にもコントロールIDがあれば教えてください
0715デフォルトの名無しさん
2005/07/22(金) 18:57:54その二つが調べられるなら簡単だろ。
0716デフォルトの名無しさん
2005/07/22(金) 20:00:060717デフォルトの名無しさん
2005/07/22(金) 20:20:060718デフォルトの名無しさん
2005/07/22(金) 20:33:53最大何個までになるんでしょうか?
0719デフォルトの名無しさん
2005/07/22(金) 20:58:170720718
2005/07/22(金) 21:05:17できないとして。
0721物好き
2005/07/22(金) 22:10:17まあ、展開が嫌なので知らないの含めて答えると
>711
知りませんので答えるべきではないのですが・・・。
なぜ知りたいのかわからんのでなんともいえませんが
エラーになるメールのメールヘッダ調べれば分かるのでは?
>712
Rangeオブジェクトの親の親はWorkbookオブジェクト
まあ、713さんの答えであってるのですが返答がないので一応。
>714
ttp://www2s.biglobe.ne.jp/~iryo/2vba/sankou.html
にのってるな。まあ確かに調べればすぐわかります・・・。
>718
最大何個までかは知りません。
ただ、ParamArrayキーワードを使えば、何個だろうとかまわんはず。
XXをしたいのですが○○という条件があって・・・とか書けば返答できるけどなあ。
まあ、スルーすればいいのだが・・・。
何をしたいから、教えてくださいとか書かないし、
結果も書かないしなあ。分からんとしても調べた結果を書いてほしいと思う。
まあ日本人以外にそれを求めるのは・・・。
0722デフォルトの名無しさん
2005/07/23(土) 00:21:11カナーリ馬鹿な部類のほうだと思うけど
0723デフォルトの名無しさん
2005/07/24(日) 11:53:180724デフォルトの名無しさん
2005/07/24(日) 12:31:52しょうか。
on error goto〜だと、どこでエラーが発生したか分からないので不便です。
java とかみたいに、try catchみたいな構文ならいいのに。
0725デフォルトの名無しさん
2005/07/24(日) 12:46:25つーかtry catchも構文自体は、どこでエラーが発生したか
わからんけどな。
0726デフォルトの名無しさん
2005/07/24(日) 20:25:15整数みたいにCIntとかないみたいなんですが。
0727デフォルトの名無しさん
2005/07/24(日) 21:06:08今ないなら、今後出るということはないのですか?
0728デフォルトの名無しさん
2005/07/24(日) 21:37:46今後のことはMSに聞け。
0729726
2005/07/24(日) 22:08:51ないんですか?
自作しないといけないんでしょうか?
0731デフォルトの名無しさん
2005/07/25(月) 07:15:11探したらすぐ見つかったぞ。
ここで質問するよりぐぐった方が早いと思うんだがな。
ttp://www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=%E3%83%87%E3%83%BC%E3%82%BF%E5%9E%8B%E5%A4%89%E6%8F%9B+Cint+Double&num=50
0732デフォルトの名無しさん
2005/07/25(月) 07:20:34お前らの回答が遅いから結果的にはそうだな。
0733デフォルトの名無しさん
2005/07/25(月) 07:28:500734デフォルトの名無しさん
2005/07/26(火) 01:48:14それを1つのファイルにまとめたいんですが、本を読んでもさっぱりわかりません。
具体的には1つのファイルに、縦に位置をずらしながら他のデータをコピー&ペーストしたいのです。
ヒントでもかまわないのでよろしくお願いします。
0735デフォルトの名無しさん
2005/07/26(火) 02:07:471.ファイルを開く
2.コピーする
3.貼り付けする
4.ファイルを閉じる
5.1に戻る
0736デフォルトの名無しさん
2005/07/26(火) 02:27:10即レス感謝でつ。
でも2.でコピーするファイルと3.で貼り付けるファイルが違うんですよね。
あとそこがわかればなんとかなりそうです。
0737デフォルトの名無しさん
2005/07/26(火) 02:38:02Excel.Worksheet
0738デフォルトの名無しさん
2005/07/26(火) 07:08:52無礼すぎ
0739デフォルトの名無しさん
2005/07/26(火) 07:11:02複数のエクセルファイルをドラッグアンドドロップして
いずれのファイルからも特定のセル
(例えば5枚目のシートのE12みたいに)
からデータを拾ってきて、1つのエクセルファイルに
出力するようなツールを作りたいのですが
そういうのってAccessで実現できるのでしょうか?
また、出来るとしたらどうすればいいのでしょうか?
よろしくおながいします。
0740デフォルトの名無しさん
2005/07/26(火) 07:12:09複数のエクセルファイルをドラッグアンドドロップして
いずれのファイルからも特定のセル
(例えば5枚目のシートのE12みたいに)
からデータを拾ってきて、1つのエクセルファイルに
出力するようなツールを作りたいのですが
そういうのってAccessで実現できるのでしょうか?
また、出来るとしたらどうすればいいのでしょうか?
よろしくおながいします。
0741デフォルトの名無しさん
2005/07/26(火) 09:42:10本をみながらマクロを書きブックに戻って実行したら
デバッグとなり黄色くなってしまいました。
しかも消えない。
た す け て
0742デフォルトの名無しさん
2005/07/26(火) 10:02:02それはマクロにエラーがあるってことだ。
メニューの「実行 > リセット」で元には戻るけど
コードを見てない俺等では、エラーが出ないようにする方法は教えられない。
0743デフォルトの名無しさん
2005/07/26(火) 12:51:47ありがとうございます。
リセットできました。
ダブルクォーテーションとか()って、大文字小文字は正確に
打たないとだめですよね。
みなさん、いちいち「半角全角」キー押すの
めんどくさくないですか?
慣れちゃえば身体が自然に動くんですか?
0744デフォルトの名無しさん
2005/07/26(火) 13:29:41全角半角の間違いじゃねーか?
俺は日本語文字列入れるところはNullのままにしておいて
後から入力することが多いな。
1. msgbox "",vbokonly,""
2. IME ON
3. msgbox "おはよう",vbokonly,""
4. msgbox "おはよう",vbokonly,"あいさつ"
みたいな感じで。(この場合vbokonlyは省略できるけど)
0745デフォルトの名無しさん
2005/07/26(火) 20:01:09ありがとうございました。
ナイスな方法ですね。
わたしもそのやり方でやってみます。
が、初心者なのでまとめて後入力だと
日本語で何を入れるのか忘れそうで恐い。
0746デフォルトの名無しさん
2005/07/26(火) 20:39:310747デフォルトの名無しさん
2005/07/28(木) 19:32:57ついでにどこで買うのが安く、しかも初心者にも優しいのか教えて下さい。
皆さんはどんな風に勉強したんですか?初心者にも分かりやすく教えて下さい。
よろしくお願いします
0748デフォルトの名無しさん
2005/07/28(木) 19:49:53今売ってるWinかMacなんでもOK
Pen 66MHz RAM16MBなんてPCでも、普通にVBA使えるから
> ついでにどこで買うのが安く、しかも初心者にも優しいのか教えて下さい。
VBA関係ないのでスレ違い
> 皆さんはどんな風に勉強したんですか?初心者にも分かりやすく教えて下さい。
「解らなければ人に聞けばいい」という考え方を捨てることが勉強の第一歩です
以上
あとは勝手にがんがれ
0749デフォルトの名無しさん
2005/07/28(木) 19:58:36ちゃんと>>747を適切なスレに誘導してあげるのも優しさだぜ
http://pc8.2ch.net/test/read.cgi/prog/1121498900/
0750デフォルトの名無しさん
2005/07/28(木) 20:00:41そこは夏厨じゃない奴が夏厨になりきって遊ぶスレだぜ
本物の夏厨を誘導してどうするw
0751デフォルトの名無しさん
2005/07/28(木) 20:02:020752デフォルトの名無しさん
2005/08/02(火) 22:48:45CrystalReport で、明細部分を繰り返し印刷することが
できますけど、Access VBAのフォームにも同様の機能
があるんでしょうか?
現在、Access VBAの業務系ソフトをVB.NETに移植
しようとしているのですが、VBAの方で、ひとつの
レコードが複数の行に渡って記載されているリスト
コントロールのような表示になっておりまして、
これをどうやって移植したらいいのかと思っています。
これはAccess VBA独自のコントロールなのでしょうか?
VB.NETでは使えませんかね?
0753デフォルトの名無しさん
2005/08/04(木) 12:18:36うまくいきません_| ̄|○
Dim oShell As Object
Dim oExec As Object
Set oShell = CreateObject("WScript.Shell")
Set oExec = oShell.Exec("C:\test.bat")
教えてください
|ω・`)
0754デフォルトの名無しさん
2005/08/04(木) 12:26:130755デフォルトの名無しさん
2005/08/04(木) 12:31:59ありがとうございます!!(´∀`)
0756デフォルトの名無しさん
2005/08/04(木) 19:45:56判定したいんですが、どういう感じで書けば可能でしょうか?
0757デフォルトの名無しさん
2005/08/04(木) 20:52:41半角カナが含まれてればTrue
含まれてなければFalse
になると思うが。
0758デフォルトの名無しさん
2005/08/08(月) 18:38:47教えてください。
任意のExcelブックのシートに図が一枚だけ貼りつけられているのですが、
その図を削除したいため、オブジェクト名を取得したいのですが、
どのようにすれば取得できるのでしょうか?
ActiveSheet.Shapes(XXXXXXXX).Select
Selection.Delete
0759デフォルトの名無しさん
2005/08/08(月) 18:59:510760デフォルトの名無しさん
2005/08/08(月) 19:00:57ActiveSheet.Shapes(1).Name
0761758
2005/08/08(月) 19:54:57(*´Д`)
0762デフォルトの名無しさん
2005/08/10(水) 12:10:47自分でコマンドバーを新しく作る方法は分かったのですが、
そこにオートシェイプの「直線」と「四角形」のボタンを追加する方法が分かりません。
どなたか教えてください。
0763デフォルトの名無しさん
2005/08/10(水) 13:00:240764デフォルトの名無しさん
2005/08/10(水) 13:36:300765デフォルトの名無しさん
2005/08/10(水) 13:45:42Excel総合相談所 36
http://pc8.2ch.net/test/read.cgi/bsoft/1121686643/
こっちの住民は寒気がするくらい優しいぞ。
0766762
2005/08/10(水) 13:50:390767デフォルトの名無しさん
2005/08/10(水) 13:55:25大丈夫。Wordの質問でもちゃんと答えてくれるはずだって。
0768デフォルトの名無しさん
2005/08/10(水) 14:05:12いや、そのスレ最近イイふいんきだけど、さすがにそこまで甘くないだろ。
それに前スレでもそうだったけど、偶にものすごく荒れるし。
0769デフォルトの名無しさん
2005/08/10(水) 17:21:03ほんとの事を言うと、
あなたの質問に答えられるほど、
ここの住人はレベルが高くないんです。
だれも模範解答を提示できないから、
なんだかんだとお茶を濁すぐらいしかすることがない。
0770デフォルトの名無しさん
2005/08/10(水) 17:37:470771デフォルトの名無しさん
2005/08/10(水) 17:40:42それとID出ないからといって自演はほどほどに
0772デフォルトの名無しさん
2005/08/10(水) 19:04:23468 名前:名無しさん@そうだ選挙にいこう[sage] 投稿日:2005/08/10(水) 17:55:32
>>466
「ユーザー設定」ダイアログを表示した状態で、分類「オートシェイプ」
を選ぶ。後はそこに表示される「直線」だの「四角形」などのボタンを、
自作のツールバーにドラッグ&ドロップ。
0773デフォルトの名無しさん
2005/08/11(木) 15:26:0297の参考書買おうと思うんですけど
0774デフォルトの名無しさん
2005/08/11(木) 15:30:20関数とかメソッドとか結構増えてるよ
というか、今頃97対応版買っても仕方ないと思われ
最低でも2002、できれば2000〜2003対応のを買え。
0775デフォルトの名無しさん
2005/08/11(木) 18:55:06ありがとうございます
0776デフォルトの名無しさん
2005/08/14(日) 23:49:52練習問題みたいのを(例えば新規ブックを開く、とか)ツールバーに登録しています。
それで新たに作ったプロシージャをいつものように登録したんですが
「マクロ 'PERSONAL.XLS!セルA1の値を取得、表示する' が見つかりません。」
とアラートが出てしまいます。
ただし、VBEの中から
実行>Sub/ユーザーフォームの実行
を行うとアクティブシートのA1の中身を表示します。
また、以前作ったものを新しいボタンに登録すると、例えばアクティブシートを削除、ならその通りに動きます。
一体なにがいけないのでしょうか?
よろしくご教示ください。よろしくおねがいします。
0777デフォルトの名無しさん
2005/08/15(月) 08:55:55Excel総合相談所 36
http://pc8.2ch.net/test/read.cgi/bsoft/1121686643/
0778デフォルトの名無しさん
2005/08/15(月) 20:20:54了解です、誘導ありがとうございました。
0779デフォルトの名無しさん
2005/08/16(火) 09:55:21OfficeXP DeveloperでCOMアドインの作成にチャレンジしているのですが、これはいったい?
と思う出来事に困っています。
AddinInstance_OnConnection時にUserFromを表示させるようにコードを書いたところ。
スタートボタンからExcelを起動したときは問題ないのですが、関連付けられた「*.xls」ファイルを
ダブルクリックして起動した場合は、UserFormを閉じた後ワークシート上でのキーボードの入力を
まったく受け付けなくなってしまって困っています。Altによるメニューの表示や、セルを
ダブルクリックした後のデータ入力等は可能ですが、それ以外はまったくキー入力が
無視されてしまいます。(方向キーによる選択セルの移動や、セルへの直接データ入力、
Ctrl+PgUpによるシートの表示切替など)これって回避できるのでしょうか?
0780デフォルトの名無しさん
2005/08/16(火) 10:08:06>男の顔が突然歪んだ。それに合わせるように、その腰の動きが単調で乱暴になり、そしてより激しくなっていく。
まで読んだ
0781デフォルトの名無しさん
2005/08/16(火) 10:13:06> 自分の一番深い所で男の精液が爆発した瞬間、キャミィは目を剥きながら心の中だけで絶叫した。
まで読んだ。
0782デフォルトの名無しさん
2005/08/16(火) 18:37:22> 突然、「ひっ。」と妻の声が中からしました。今から思えばきっとこの時パン
まで読んだ。
0783デフォルトの名無しさん
2005/08/17(水) 01:32:55おまいら、、、、たのむよ〜
0784デフォルトの名無しさん
2005/08/17(水) 09:37:11伺いたいのはIEコンポーネントでフレーム(2つに分かれています)のあるページを開いているのですが、
どちらか片方のページが開いたら次の処理を行う
ということをしたいのです(もう一方のページが開くのがすごく遅いのでその間に別の処理をしてしまいたい)
IE.Busy が終わるのを待っていると両方共のページが開くのを待たないといけませんが
片方が開いたというのを分かる方法はありますでしょうか?
フレームのページは自分で作っていますので、IE.document.frames("namae") みたいな感じになっています
よろしくおねがいいたします
0785デフォルトの名無しさん
2005/08/17(水) 10:26:55>>777
0786デフォルトの名無しさん
2005/08/17(水) 11:09:55VBプログラマ質問スレ(6.0以前) Part43
http://pc8.2ch.net/test/read.cgi/tech/1123952677/
0787デフォルトの名無しさん
2005/08/17(水) 16:44:09商品A コメント 100円
を
商品A
コメント
100円
という風に別ブック別シートに並べたいのですが分からなくて弱ってます。
Sub xxx()
Dim myOriginal As Integer
Dim myCopy As Integer
For myCopy = 1 To 3
For myOriginal = 1 To 3
Cells(5, myCopy).Value = Cells(myOriginal, 1).Value
Next myOriginal
Next myCopy
End Sub
なんとなくこんな感じの入れ子になるような気はするのですが、どこが間違ってますでしょうか?
教えていただけませんか、お願いします。
0788デフォルトの名無しさん
2005/08/17(水) 17:12:02myOriginal = 1
For myCopy = 1 To 3
Cells(myCopy, 5).Value = Cells(1, myOriginal).Value
myOriginal = myOriginal + 1
Next myCopy
ここから改良するつもりです。お騒がせ致しました、すみません。
0789デフォルトの名無しさん
2005/08/17(水) 18:30:00WSHスレの方が詳しいような気がするけど、どこに持っていってもそれに詳しい人を待たないといけないかな。
前はIEコンポのスレがあったんだけどね。
0790デフォルトの名無しさん
2005/08/17(水) 18:45:11Dimステートメントで定義した、2次元配列を、
1次元目をキーにソートしたいのですが、可能でしょうか。
よろしくお願いします。
0791デフォルトの名無しさん
2005/08/17(水) 18:56:56可能
といっても一発でソートするようなメソッドとかが有る訳じゃない。
VB、VBAにはソート機能は無いので、ソートの汎用アルゴリズムを使うか
ソート可能なコントロールを使い、そのコントロールのメソッドでソートするかだな。
VBAの場合、二次元までの配列をソートする一番簡単な方法は
シートに書き出してオートする方法。だが、これを嫌う奴は多いので、
これがイヤなら自分で書け。
といっても腐るほどサンプルが転がってるから苦労はしないと思うが、
サンプルくらい自分で拾ってこいよ。
0792デフォルトの名無しさん
2005/08/17(水) 18:59:4997以前のメソッドの名残を使える方法があったような。
時間がないので調べてないけど。
0793デフォルトの名無しさん
2005/08/17(水) 19:12:54Sheet2のみ、Sheet3のみの内容をコピーし、新規のbookを作成し、そこにペーストする方法はわかる
のですが、Sheet2からSheet5までをまとめて新規のbookにペーストする方法がわかりません
どなたかよい記述方法をアドバイスしていただけないでしょうか
0794デフォルトの名無しさん
2005/08/17(水) 19:16:47処理を個別にしてループ回せばいいだけのことなのに。
0796デフォルトの名無しさん
2005/08/18(木) 15:14:28処理実行後、エクセル自体を終了させたいのですが、
ActiveWorkbook.Close SaveChanges:=False
ActiveWindow.Close SaveChanges:=False
のどちらを試してみても、エクセルブックは閉じるのですが、
エクセル自体は終了してくれません。(ブックが何も無い状態でアプリがそのまま残っている)
恐らく、アプリ自体を終了するような方法があると思うのですが、
調べ方が足りないのか、方法が見つかりません。
どなたかご指導をお願いします。
0797デフォルトの名無しさん
2005/08/18(木) 15:20:070798796
2005/08/18(木) 16:03:31ありがとうございます。m(_ _)m
とりあえず、アプリを終了する事はできそうですが、
「保存しますか?」のアラートが出てしまいます。(保存はしたくありません)
ActiveWindow.Close SaveChanges:=False
Application.Quit
と2段階で行う事も試しましたが、
ワークブックを閉じた段階で、次の命令文が実行されないみたいで、
(当然といえば、そうなのかもしれませんが)
結局、前と同じ状況(アプリは終了しない)になってしまいます。
何か、良い方法ってないのでしょうか?
0799デフォルトの名無しさん
2005/08/18(木) 16:10:33つーか聞くことしか考えてないの?
Application.Quitだって「VBA "Excelを終了する"」とかでググれば腐るほど出るぜ。
ちっとは自分でやる気になってみろよ
0800796
2005/08/18(木) 16:27:52申し訳ないです。
これでも昨日から、ググりつついろいろ試していたのですが・・・
検索の仕方が悪く、前段階では Application.quit すら見つかりませんでした。
※ 例に挙げたワークシートやウィンドウの閉じる方法しか見つかりませんでした。
とりあえず、Personal.xls 試してみます。
0801デフォルトの名無しさん
2005/08/18(木) 19:13:56逆にする。
Application.Quit
ThisWorkbook.Close SaveChanges:=False
0802デフォルトの名無しさん
2005/08/18(木) 21:12:43慣れてる人ならまだしも、ネットで全部済ますのは無理があると思うよ
逆引き大全の類は1冊持っておいた方がいいと思う
0803デフォルトの名無しさん
2005/08/21(日) 16:31:31ご指導お願いします。
Public Sub UserForm1_Initialize()
Public あ As Long, あ範囲 As Range
Set あ = Worksheets("シート1").Range("A65536").End(xlUp).Row
Set あ範囲= "シート1!B2:B" & あ
End Sub
Private Sub ComboBox1_Change()
Dim う As Integer
With UserForm1
.ComboBox2.Text = ""
う = .ComboBox1.ListIndex
Select Case う
Case 0
.ComboBox2.RowSource = "シート1!A2:A10"
Case 1
.ComboBox2.RowSource = あ範囲
End Sub
0804デフォルトの名無しさん
2005/08/21(日) 19:53:26Excel総合相談所 36
http://pc8.2ch.net/test/read.cgi/bsoft/1121686643/
0805デフォルトの名無しさん
2005/08/22(月) 10:37:110806デフォルトの名無しさん
2005/08/22(月) 10:40:230807デフォルトの名無しさん
2005/08/22(月) 10:58:16243 名前:ネトゲ廃人@名無し 投稿日:2005/08/17(水) 20:00:25 ID:???
オレはVBAで!
244 名前:ネトゲ廃人@名無し 投稿日:2005/08/17(水) 20:31:41 ID:???
>>243
おお、同士よ
オレもExcelでVBAさ
データ類は別ファイルとかにしなくてもシートに置いておけるし便利だよね
今日もExcelで造船マクロさ
245 名前:ネトゲ廃人@名無し 投稿日:2005/08/17(水) 20:48:35 ID:???
クォリティタカスwwwwwwwwwwwwwwwwwww
ってなレスが有りまして・・・VBAで作れば一番上手いと思った次第です
0808デフォルトの名無しさん
2005/08/22(月) 11:15:02それはVBAを使いこなせる奴が言う台詞だ。
つーかそのスレ、レベル低すぎ。
まあ一番参考になるサイトはGoogle
コレをもって他は無い
後々楽したいなら、あとは自分でがんばれ
0809デフォルトの名無しさん
2005/08/22(月) 11:30:28ここまで聞いたら駄目かも知れないですけど、どのような検索ワードを入力すれば宜しいでしょうか?
MMO マクロ 作成 VBA ネットゲームとか色々試して居るんですが一向に出てきません
0810デフォルトの名無しさん
2005/08/22(月) 11:45:27図々しいにも程がある
いくらVBが使えるだけじゃマとは呼ばれないってほど簡単な言語でも
寝マクロなんてのは素人がいきなり作れるものじゃない
汎用的なプログラミングの基礎から始め、VB(VBA)の構文規則や
関数、メソッドなどの基礎をちゃんと勉強しろ
構文規則はVB(6以前)もVBAも同じだから、VB6の入門サイトでも見てこい
とりあえず言語関係全く未経験なら「Visual Basic中学校」あたり行け
0811デフォルトの名無しさん
2005/08/22(月) 17:33:35でもその前にVBAの基本事項やら構造やら理解しないとなぁ
0812デフォルトの名無しさん
2005/08/22(月) 18:47:240813デフォルトの名無しさん
2005/08/22(月) 18:58:340814デフォルトの名無しさん
2005/08/23(火) 13:07:02もうちょっとしっかり勉強したほうがいいよ。
構文がめちゃめちゃ。
Sub UserForm1_Initialize()
ではInitializeイベントが成立しない。
1がいらない。
他も間違ってるところばかりで書ききれん。
全コード書け、って言うのは勘弁して欲しいので、
自分できっちり勉強しなおしてね。
0815デフォルトの名無しさん
2005/08/31(水) 21:48:150816デフォルトの名無しさん
2005/09/01(木) 18:07:40入力シートにデータを入れると、集計シートで計算をしてくれるため、集計シートには保護をかけたいと思っています。
そして、そのファイルをネットワークで共有したいと思っているのですが、一人がデータを入力した時、
他の人はExcelを閉じずに、更新ボタンを押せば集計シートを更新できるようにしたいのですが、どのようにすればいいでしょうか?
入力と集計でファイルを分ければいいような気もするのですが、使いまわしたいので、できれば内容にフルパスを
入れたくありません。
ちなみに、データを入力する人間は原則一人です。
よろしくお願いします。
0817816
2005/09/01(木) 18:15:05Excel2000で実現できないかな、と思っています。
できれば1ファイルで完結すればいいのですが。
0818デフォルトの名無しさん
2005/09/01(木) 22:51:29A1からF1に入力項目があって、A1からF1まで全て入力済みなら灰色で塗りつぶして
A1からF1のどこか一つでも未入力箇所があると塗りつぶしなしをする
このようなマクロを作成したいのですが初心者なもので・・・教えていただけないでしょうか。
0819デフォルトの名無しさん
2005/09/01(木) 22:57:15何を持って入力されたと看做すのか。とにかく何か文字が入っていればそれで良いのか
自分で条件をまとめなされ。
0820デフォルトの名無しさん
2005/09/01(木) 23:15:090821デフォルトの名無しさん
2005/09/01(木) 23:16:190822デフォルトの名無しさん
2005/09/01(木) 23:19:11どっちに書いたらいいのかわからんかったから両方書いただけ
0823デフォルトの名無しさん
2005/09/01(木) 23:28:250824818
2005/09/02(金) 00:00:120825デフォルトの名無しさん
2005/09/03(土) 13:01:38例えば、テキストファイルで「あ」と入力したものをバイナリエディタで開くと
16進数で「82A0」と表示されます。
この16進数コードから「あ」を、VBAを使って生成したいのですが、どうすればよいでしょうか。
VBAだと、unicodeならchr関数でキャラクタへ変換できますが、16進数からキャラクタへの変換がわかりません。
よろしくお願いします。
例
82A0 → あ
2バイトの16進数を変換してキャラクタを生成
0826デフォルトの名無しさん
2005/09/03(土) 13:20:11Function hoge(code As String) As String
hoge = Chr(Val("&H" & code))
End Function
0827825
2005/09/03(土) 19:13:01こんなに早くレスしていただきありがとうございます!
お陰で解決しました。
0828ゆみ
2005/09/06(火) 01:26:58VBAでそれは可能でしょうか?
0829デフォルトの名無しさん
2005/09/06(火) 01:44:21可能だけどネカマには教えたくない。
名前欄や本文で女っぽい名前を書く奴はほとんどネカマという法則があるからね。
(ほとんどの奴は否定するけど、指摘されてすぐ肯定するくらいなら騙りなんてやらないだろうし)
相手が男でも回答はするけど、俺はネカマの質問には答えない。
0830デフォルトの名無しさん
2005/09/06(火) 01:58:01何か嫌なことでもあったのか。
しかも教えたくないと言いつつ可能だ、と答えてるし。
0831デフォルトの名無しさん
2005/09/06(火) 02:03:39スルーすればいいものを。
何か嫌なことでもあったのか。
0832デフォルトの名無しさん
2005/09/06(火) 02:21:04スルーすればいいものを。
何か嫌なことでもあったのか。
0833デフォルトの名無しさん
2005/09/06(火) 02:33:06for ResNo = 832 To 999
call SendRes(">>" & ResNo & vbcrlf & "スルーすればいいものを。" & vbcrlf & "何か嫌なことでもあったのか。")
next ResNo
0834デフォルトの名無しさん
2005/09/06(火) 02:34:56スルースルスルスルスルルー
何か嫌なことでもあったんた!!!WWW
0835デフォルトの名無しさん
2005/09/06(火) 02:54:42君合格
0836833
2005/09/06(火) 03:00:20変数は宣言しろとか定型文は定数使えとか
SendResプロシージャも書けとか言われるかと思った
0837ゆみ
2005/09/06(火) 22:21:50具体的にはどのようにすればいいのでしょうか?
Appkication。Version とかBuildではアプリのバージョン番号が取得されてしまいます・・・
0838デフォルトの名無しさん
2005/09/06(火) 22:29:36とりあえずおっぱいうpして
08391
2005/09/07(水) 01:11:26ほとんどネカマという法則があるからね
ほとんどネカマという法則があるからね
ほとんどネカマという法則があるからね
ほとんどネカマという法則があるからね
ほとんどネカマという法則があるからね
ほとんどネカマという法則があるからね
ほとんどネカマという法則があるからね
ほとんどネカマという法則があるからね
0840デフォルトの名無しさん
2005/09/07(水) 07:04:38とりあえずおっぱいうpして
0841ゆみ
2005/09/07(水) 22:48:30教えていただけないでしょうか?
0842デフォルトの名無しさん
2005/09/07(水) 23:13:22>>838
0843デフォルトの名無しさん
2005/09/08(木) 00:07:34実行させたいのですが、どのようにすれば宜しいのでしょうか。
google等で検索したのですが、ヒントになるサイトがありませんでした。
板違いでしたら、申し訳御座いません。
具体的には、下図のパソコンAがパソコンBのVBマクロを実行する方法です。
HTMLとVBAのソース、少しは読むことができます。
<条件>
(パソコンA)--(プロバイダ)--(パソコンB)
・パソコンAはブラウザ起動済み
・パソコンBはブラウザとエクセル起動済み
・パソコンAとBはLAN経由でインターネットに繋がっています。
・パソコンAとBは上記プロバイダにある同じコンテンツを参照しています。
0844けいこ
2005/09/08(木) 00:10:57可能だけどネカマには教えたくない。
名前欄や本文で女っぽい名前を書く奴はほとんどネカマという法則があるからね。
(ほとんどの奴は否定するけど、指摘されてすぐ肯定するくらいなら騙りなんてやらないだろうし)
相手が男でも回答はするけど、俺はネカマの質問には答えない。
0845デフォルトの名無しさん
2005/09/08(木) 00:21:03パソコンAからWebに命令を書き込み。
パソコンBはWebの命令を読み込み実行する。
こんなプランでどうよ?
0846デフォルトの名無しさん
2005/09/08(木) 00:28:420847デフォルトの名無しさん
2005/09/08(木) 00:36:08それが一番楽だなw
0848843
2005/09/08(木) 00:48:02言葉足らずですいません。
パソコンAがもし、フルブラウザ参照可能な携帯電話の場合、
HTMLの記述はどうすれば良いのでしょうか。
検索して、下記サイトを参照しました。
http://www.tohoho-web.com/lng/199806/98060072.htm
試しに、デスクトップにあるマクロを起動したExcelファイルを立ち上げ、
HTMLファイルに上記サイトの
<a href="./ExcelFile/test.xls">Excelファイル実行</a>
を参考にして、実行したところ、Excelファイルの
ダウンロードまたはファイルを開くのポップアップが表示されてしまいました。
0849デフォルトの名無しさん
2005/09/08(木) 03:17:27調べてもわからんかったのだけど、
Subとかで引数って、いくつまで渡せる?
もしかして、10個で限界とかある?
0850デフォルトの名無しさん
2005/09/08(木) 03:30:39でもそれ以上の引数を渡す方法もいろいろある。
まあ、大抵は60個じゃ足りなくなることはないので
それらの方法は別の用途で使われるんだけどね。
興味があるなら自分で調べよう。
0851849
2005/09/08(木) 03:39:42クラスモジュールのSubなんだけど、、
12個だとエラーでて11個にしたら、通ったぽい
でも、60個か...
おかしいなー
やっぱり他のミスが内在してるのかもしれないな
とりあえず、助かりました
さんくす
0852ゆみ
2005/09/08(木) 10:02:570853デフォルトの名無しさん
2005/09/08(木) 11:07:41とりあえずおっぱいうpして
0854デフォルトの名無しさん
2005/09/08(木) 13:39:32Excel の Visual Basic Editor でプログラムを書き、同じく
Editor 環境の「Sub/ユーザフォームの実行」でプログラムを実行し、
こちらは常にうまく動作します。
一方、Excel のシートの方に「マクロの実行」ボタンがあるのですが、
こちらからはそのプログラムを起動できる場合とできない場合があります。
できる場合は問題ないのですが、できない場合、
「マクロ」ウィンドウが出てプロシージャ名が表示されるのですが、
「実行ボタン」が無効のままでプログラムが起動できないのです。
このような現象はよくあることなのでしょうか?
また、その原因を御教授頂けないでしょうか?
0855854
2005/09/08(木) 13:46:22プロシージャ名を変えたらシートからでもうまく起動するようになりました。
「ex1」というのは予約語と衝突するとか、何か問題があるのでしょうか?
0856デフォルトの名無しさん
2005/09/08(木) 13:49:43スレ汚し失礼しました。
0857デフォルトの名無しさん
2005/09/09(金) 00:21:44シートをPDFに変換するためにPSプリンタでシートをPOSTScriptファイルに出力し
POSTScriptファイルをPDFに変換するという手順を踏んでいるのですが
Call Worksheets("Sheet2").PrintOut(, , , False, "(Generic PostScript Printer)", True, , "c:\test.ps")
でPOSTScriptファイルは出力されるのですがPOSTScriptファイルがよく文字化けしてしまいます。
そのため出力されたPOSTScriptファイルはPDFに変換できません。
プログラムではなく人間が手動でPSプリンタを使ってPOSTScriptファイルを出力させると文字化けをすることはありません。
どうして文字化けを起こしてしまうのでしょうか?
0858デフォルトの名無しさん
2005/09/09(金) 07:19:00Excel総合相談所 37
http://pc8.2ch.net/test/read.cgi/bsoft/1125178942/
0859デフォルトの名無しさん
2005/09/09(金) 12:59:432つのCSVファイルを指定して比較し、その差分をC:\tmp\差分.csvに出力
させるにはどのようなプログラムにすればよいのでしょうか?
0860デフォルトの名無しさん
2005/09/09(金) 13:23:22二つのcsvを二つの二次元配列に読み込んで
ループ回して比較して、比較結果で条件分岐させて書き出せばいいじゃん。
ここは「コード書いてください」スレではないので具体的なコードは自分で書こうね。
0861デフォルトの名無しさん
2005/09/09(金) 13:37:58Excel総合相談所 37
http://pc8.2ch.net/test/read.cgi/bsoft/1125178942/
0862デフォルトの名無しさん
2005/09/09(金) 13:49:55Excel総合相談所への誘導は止めなさい。
っていうと反抗したい年頃のガキは逆に誘導しまくったりするのかもしれんが。
0863ゆみ
2005/09/09(金) 23:49:150864デフォルトの名無しさん
2005/09/09(金) 23:51:27ヒント:オブジェクト
0865デフォルトの名無しさん
2005/09/10(土) 00:35:44Excel総合相談所 37
http://pc8.2ch.net/test/read.cgi/bsoft/1125178942/
0866デフォルトの名無しさん
2005/09/10(土) 00:44:030867ゆみ
2005/09/10(土) 07:22:480868ゆみ
2005/09/10(土) 09:41:05厳しい言い方で申し訳ありませんが、よろしくお願いします
0869ゆみ
2005/09/10(土) 10:01:240870ゆみ
2005/09/10(土) 11:12:490871ゆみ
2005/09/10(土) 15:02:200872デフォルトの名無しさん
2005/09/10(土) 15:19:03みなさんお勧めの入門書とかありますか?
0873デフォルトの名無しさん
2005/09/10(土) 15:33:49あなたが本屋に行き、読んでみてわかりやすいと思った本
どういう本が合ってるか、読みやすいか、わかりやすいかは人それぞれ
というか、VBA程度ならやる気が有ればネットだけで充分独学出来る
逆にやる気がなければどんなに書籍集めてもダメだろう
0874デフォルトの名無しさん
2005/09/10(土) 15:34:32AccessVBAなのか
WordVBAなのか
0875ゆみ
2005/09/10(土) 18:19:390876名無しさん@そうだ選挙に行こう
2005/09/10(土) 18:23:550877名無しさん@そうだ選挙に行こう
2005/09/10(土) 18:27:020878名無しさん@そうだ選挙に行こう
2005/09/10(土) 18:32:360879ゆみ
2005/09/10(土) 20:03:270880ゆみ
2005/09/10(土) 21:36:460881名無しさん@そうだ選挙に行こう
2005/09/10(土) 21:45:22ヽ(・ω・)/ ズコー
\(.\ ノ
0882ゆみ
2005/09/10(土) 22:01:01http://l.pic.to/137e8
0883名無しさん@そうだ選挙に行こう
2005/09/10(土) 22:11:04おっぱい→○
0884ゆみ
2005/09/11(日) 00:05:32本当に助けを求めて書いているのですがどうしてこんな書き込みしかないのですか?
もしご存知で親切な方がおりましたらよろしくお願いします
0885名無しさん@そうだ選挙に行こう
2005/09/11(日) 00:09:45いい加減、ここじゃ解決しないって学習したら?
0886名無しさん@そうだ選挙に行こう
2005/09/11(日) 00:16:58本当にどうしても正確な回答が欲しいのなら
↓ここに問い合わせるのが筋と言うもの。
ttp://support.microsoft.com/select/?target=assistance
0887名無しさん@そうだ選挙に行こう
2005/09/11(日) 00:19:04ここまで荒らしたら、もうだれも回答してくれないよ。
0888ゆみ
2005/09/11(日) 00:20:070889ゆみ
2005/09/11(日) 00:31:23わかりました、今度MSに問い合わせてみます。
長々とスレ汚し失礼しました。
尚、以後偽者が荒らし続けるかも知れませんが
私はもう一切書き込みませんので放置していただいて結構」です。
0890名無しさん@そうだ選挙に行こう
2005/09/11(日) 00:53:370893名無しさん@そうだ選挙に行こう
2005/09/11(日) 15:58:270894名無しさん@そうだ選挙に行こう
2005/09/11(日) 16:21:230895名無しさん@そうだ選挙に行こう
2005/09/11(日) 18:17:33Excel97で作ったVBAをExcel2002で実行させると、処理時間が大分遅くなってしまいました。
処理内容、ステップ数でも違うと思うのですが、そんなに変わるものでしょうか?
Excelの処理時間で詳しい方がいましたら、回答よろしくおねがいします。
0896名無しさん@そうだ選挙に行こう
2005/09/11(日) 18:21:09Excel総合相談所 37
http://pc8.2ch.net/test/read.cgi/bsoft/1125178942/
0897名無しさん@そうだ選挙に行こう
2005/09/11(日) 18:31:36Access2000で、あるフォーム上にサブフォーム(帳票フォーム)があり、
そこには、バーコードをキーに商品情報を抽出した値を表示させています。
(テキストボックスを配置しています)
この時、表示させるある項目を見て、
Aならそのレコードのテキストボックスだけを赤くしたいのです。
色々探したのですが、
条件付書式でできるようなところまでは解ったのですが、
条件付書式をVBAで書く書き方はどこにも見当たりません。
おねがいします!ご存知の方、お願いします!
の、の、納期が。。。。
お助けください!
0898名無しさん@そうだ選挙に行こう
2005/09/11(日) 18:45:34すみません。せっかく教えだていただいたのですが、
教えていただいたページを見てみたのですが、よくわかりませんでした。
もう少し、詳しく教えていただけないでしょうか?
0899名無しさん@そうだ選挙に行こう
2005/09/11(日) 19:28:01かわいい反抗だなw
0900名無しさん@そうだ選挙に行こう
2005/09/11(日) 20:00:570901名無しさん@そうだ選挙に行こう
2005/09/11(日) 20:04:000902895
2005/09/11(日) 22:46:51すいません。早とちりしてました。
ちょっとスレが違ったみたいですね・・。
誘導ありがとうございます。
MSにも問い合わせを考えて見ます。
0903名無しさん@そうだ選挙に行こう
2005/09/11(日) 22:47:54とか思ってる奴が多いんじゃね?
マ業界にいるとそれが普通に見えるけど、
事務系でAccessとかExcelとか日常的にバリバリに使ってる連中は
下手なVB厨じゃ太刀打ちできないレベルで使いこなしてたりするから
結構馬鹿にできなかったりする。
0904デフォルトの名無しさん
2005/09/12(月) 01:28:41うむ、社内SE何だが大したことしてないけど漏れは神扱いだ。
0905デフォルトの名無しさん
2005/09/13(火) 00:25:53ブックのツールバー[書式設定]にある、[塗りつぶしの色]ボタンの状態(選択された色)を
VBAのコード上で取得することは不可能なのでしょうか?
セルをある色で塗りつぶすとき、例えば、Selection.Interior.ColorIndex = 15
みたいにしますが、色を示す常数(上記例なら15)を[塗りつぶしの色]ボタンから取得したいと思いまして。
どなたか知っている方がいらっしゃいましたら、お教えいただければと思います。
0906デフォルトの名無しさん
2005/09/13(火) 07:05:59Excel総合相談所 37
http://pc8.2ch.net/test/read.cgi/bsoft/1125178942/
0907デフォルトの名無しさん
2005/09/13(火) 22:57:25たぶん力業しかないと思われ
0908デフォルトの名無しさん
2005/09/13(火) 23:26:12やっぱりそうですか。。
色々調べましたが、どこにも見あたらないということはできないんでしょうね。
回答ありがとうございました。
0909デフォルトの名無しさん
2005/09/15(木) 13:22:54無理なんでしょうかね?
0910909
2005/09/15(木) 13:52:400911デフォルトの名無しさん
2005/09/15(木) 14:04:290912デフォルトの名無しさん
2005/09/15(木) 14:08:43無理じゃないからがんがれ。
もちろんマルチするような奴が具体的な回答貰えないことは知ってるよな。
0913デフォルトの名無しさん
2005/09/15(木) 14:13:530914909
2005/09/15(木) 14:14:27なのに・・・忘れた
0915デフォルトの名無しさん
2005/09/15(木) 14:17:500916デフォルトの名無しさん
2005/09/15(木) 14:19:010917デフォルトの名無しさん
2005/09/15(木) 14:23:490918デフォルトの名無しさん
2005/09/15(木) 14:38:02はできるのですが、
Worksheets("Sheet2").Name = Worksheets("Sheet1").Range("a1:b1").Value"
はできません。
つまりa1セルに山田、b1セルに太郎と入力されている場合
Worksheets("Sheet2")の名前が「山田太郎」となればててのですが。
&を使えばうまくいくのかな?
0919デフォルトの名無しさん
2005/09/15(木) 14:39:30>マルチするような奴
してないってばまさか板違いでもマルチと呼ばれのか? (((( ;゚Д゚)))ガクガクブルブル
0920デフォルトの名無しさん
2005/09/15(木) 14:43:51当然
0921デフォルトの名無しさん
2005/09/15(木) 14:50:29いちいちチェックするなよw
向こうに書いて後でこっちに気づいたからココに書いたんだよ!
(ry
それはいいとしてセルA1とセルA2を別セル例えばA3に=A1&A2で合体させて
Worksheets("Sheet2").Name = Worksheets("Sheet1").Range("A3").Value
とすればいいのかな?
もう昨日の昼からいろいろやってとてつもない時間使ってるよ・・・
0922デフォルトの名無しさん
2005/09/15(木) 14:53:45> 向こうに書いて後でこっちに気づいたからココに書いたんだよ!
そう言う場合は、最初に書いたスレで質問を取り下げるのが礼儀という物
0923デフォルトの名無しさん
2005/09/15(木) 14:57:46工エエェェ(´д`)ェェエエ工
最初に書いたスレで質問を取り下げるの???
誰が決めたの?
暇人じゃないんだから
0924デフォルトの名無しさん
2005/09/15(木) 14:59:322chのみんな
> 暇人じゃないんだから
そう、皆暇人じゃないんだから、あちこちに無駄な質問ばらまいて
回答者に無駄な時間費やさせるような真似はしないように。
0925デフォルトの名無しさん
2005/09/15(木) 15:01:06EXCEL 2000だけど、マウス合わせたときの文字がこうやって取得できるから
一つ一つ変換。 こんなんでOKかな?
Dim cbp As CommandBarPopup
Dim ci As Long
Set cbp = CommandBars.FindControl(ID:=1691)
If cbp Is Nothing Then
MsgBox "見つかりませんでした。"
Else
Select Case cbp.TooltipText
Case "塗りつぶしの色 (自動)": ci = -4142
Case "塗りつぶしの色 (黒)": ci = 1
Case "塗りつぶしの色 (茶)": ci = 53
Case "塗りつぶしの色 (オリーブ)": ci = 52
Case "塗りつぶしの色 (濃い緑)": ci = 51
Case "塗りつぶしの色 (濃い青緑)": ci = 49
Case "塗りつぶしの色 (濃い青)": ci = 11
Case "塗りつぶしの色 (インディゴ)": ci = 55
Case "塗りつぶしの色 (80% 灰色)": ci = 56
Case "塗りつぶしの色 (濃い赤)": ci = 9
Case "塗りつぶしの色 (オレンジ)": ci = 46
Case "塗りつぶしの色 (濃い黄)": ci = 12
Case "塗りつぶしの色 (緑)": ci = 10
Case "塗りつぶしの色 (青緑)": ci = 14
Case "塗りつぶしの色 (青)": ci = 5
Case "塗りつぶしの色 (ブルーグレー)": ci = 47
Case "塗りつぶしの色 (50% 灰色)": ci = 16
Case "塗りつぶしの色 (赤)": ci = 3
Case "塗りつぶしの色 (薄いオレンジ)": ci = 45
Case "塗りつぶしの色 (ライム)": ci = 43
0926デフォルトの名無しさん
2005/09/15(木) 15:01:38質問取り下げるのはどうかね?
ほとんどの人が両方のスレなんて見てないしましてや板違いでっせ?
ダメだな〜
0927925
2005/09/15(木) 15:02:27Case "塗りつぶしの色 (アクア)": ci = 42
Case "塗りつぶしの色 (薄い青)": ci = 41
Case "塗りつぶしの色 (紫)": ci = 13
Case "塗りつぶしの色 (40% 灰色)": ci = 48
Case "塗りつぶしの色 (ピンク)": ci = 7
Case "塗りつぶしの色 (ゴールド)": ci = 44
Case "塗りつぶしの色 (黄)": ci = 6
Case "塗りつぶしの色 (明るい緑)": ci = 4
Case "塗りつぶしの色 (水色)": ci = 8
Case "塗りつぶしの色 (スカイブルー)": ci = 33
Case "塗りつぶしの色 (プラム)": ci = 54
Case "塗りつぶしの色 (25% 灰色)": ci = 15
Case "塗りつぶしの色 (ローズ)": ci = 38
Case "塗りつぶしの色 (ベージュ)": ci = 40
Case "塗りつぶしの色 (薄い黄)": ci = 36
Case "塗りつぶしの色 (薄い緑)": ci = 35
Case "塗りつぶしの色 (薄い水色)": ci = 34
Case "塗りつぶしの色 (ペールブルー)": ci = 37
Case "塗りつぶしの色 (ラベンダー)": ci = 39
Case "塗りつぶしの色 (白)": ci = 2
End Select
MsgBox ci
End If
0928デフォルトの名無しさん
2005/09/15(木) 15:04:31第三者の為に書いてやってるんだからな
0929デフォルトの名無しさん
2005/09/15(木) 15:05:510930デフォルトの名無しさん
2005/09/15(木) 15:06:360931デフォルトの名無しさん
2005/09/15(木) 15:06:470932デフォルトの名無しさん
2005/09/15(木) 15:07:14なんかごちゃごちゃしてきたので、ここから心機一転
0933デフォルトの名無しさん
2005/09/15(木) 15:09:41シート名にA1+B1の名前を付けたい 例) A1=山田 B=太郎 の場合「山田太郎」
C1=A1&B1にしておけば、
Worksheets("Sheet2").Name = Worksheets("Sheet1").Range("c3").Value
の記述でできた。
でも別の方法もあると思うのでそれを知りたい
0934デフォルトの名無しさん
2005/09/15(木) 15:10:540935デフォルトの名無しさん
2005/09/15(木) 15:11:59...で?
0936デフォルトの名無しさん
2005/09/15(木) 15:14:07ウケ狙ったの?
かなり面白いんだがw
0937デフォルトの名無しさん
2005/09/15(木) 15:21:44を抽出させるVBA作るのは相当な知識が必要だろな・・・
これが全クラスの成績トップ10とかだったら簡単だけけうけど
はぁ・・・
0938デフォルトの名無しさん
2005/09/15(木) 15:31:27●年○組の成績が上位◎人分を抽出して印刷するとかいうのができるんだよね?
さっさと覚えたいが脳が働かるねぇー
0939デフォルトの名無しさん
2005/09/15(木) 15:34:24指定組の指定番号範囲の値を抽出するとかなら
VBAなら簡単だし、VBA使わなくても出せるレベルだけど
もっと難しい事を想定してるの?
0940デフォルトの名無しさん
2005/09/15(木) 16:53:220941デフォルトの名無しさん
2005/09/15(木) 20:45:10おお、これは。。
目から鱗のテクニックです!
これで望んでいる機能を作ることができます。
ありがとうございました。
0942デフォルトの名無しさん
2005/09/15(木) 21:23:40もちろんそれは分かってる。
わかりやすく例えを学生の成績にしてるが
「全クラスのテストの点数が80点以上の人を抽出」だと簡単だが
「任意のクラスの任意の点数」の場合「任意」が多ければVBAで自動化するのも
あんま意味ないなと思って
0943デフォルトの名無しさん
2005/09/15(木) 21:26:12やりたいことを日本語で書いて、それをどうPCへ命令すればいいのか考えがおもしろみ
でもあり難しさでもあるよな。
とりうえず「この条件まで」「この場合」をマスターしないとな
0944デフォルトの名無しさん
2005/09/15(木) 22:28:21ExcelのVBAの場合はWorkbooks,Worksheets,Range,Cellsの基本をマスターすれば
かなり色々なことが出来ると思われ。
テクニックに走らず、基本から少しづつやれば上達は早いと思う。
0945デフォルトの名無しさん
2005/09/15(木) 22:43:340946デフォルトの名無しさん
2005/09/15(木) 22:48:130947デフォルトの名無しさん
2005/09/15(木) 23:17:55すみませんレスありがとうございます。
VBA初心者です。
簡単なものをサンプル見たりして作っていますが今回書きましたのは
VBAを実行する前に、先に範囲を選択コピーしていた後を想定しています。
クリップボードにあるものを貼り付ける前にどのセル範囲がコピーされていたのか
を確認出来ればと思い投稿しました。
もう少し細かく書くとコピーされていた対象がセル単体なのか・複数セルの範囲なのか
行または列のみなのか等です。
0948デフォルトの名無しさん
2005/09/15(木) 23:59:21だから具体的に何を知りたいの?
シート上でコピー時に表示される破線枠の範囲を知りたいのか、
クリップボードのデータが単一セルの物か複数セルのものかを知りたいのか。
君の書き込みは結果ばかり先走っていて状況説明が不十分。
そもそも、範囲選択のみ手動で行い、コピー以降をVBAで行った方が効率良くないか?
範囲選択した状態ならSelection.Addressで選択範囲取れるし。
0949デフォルトの名無しさん
2005/09/16(金) 00:39:47すみません、説明が下手糞で・・
>そもそも、範囲選択のみ手動で行い、コピー以降をVBAで行った方が効率良くないか?
まさにそれをしようとしています。
何故コピーの範囲を確認したかったのかというと、貼り付ける場所はSelection.Addressを
使うつもりでした。
たとえば初めにコピーしていた範囲が行で貼り付けようとした場所が列だった場合など
エラーである理由をmsgboxで明確に表示させようと思ったからです。
単にエラーであるのを分岐させるならOn Error Goto・・で出来るのですが、、初めにコピー
をした範囲が明確であればこれを判断させるのも楽だと思いました。
0950デフォルトの名無しさん
2005/09/16(金) 01:58:24>シート上でコピー時に表示される破線枠の範囲を知りたいのか
そうです!これです。
もし宜しければご指導お願いします。m(__)m
0951ゆみ
2005/09/16(金) 02:40:310952デフォルトの名無しさん
2005/09/16(金) 02:41:140953デフォルトの名無しさん
2005/09/16(金) 02:48:57> 使うつもりでした。
別に貼り付ける場所にSelection使うのはいいけど、コピー範囲でもSelection使えばいいじゃん
例えばこんな感じとか
Private Sub CommandButton1_Click()
Static hoge As Range
If Application.CutCopyMode = xlCopy Then
MsgBox "コピー範囲 :" & hoge.Address & vbCrLf & _
"現在の選択範囲 :" & Selection.Address
'張り付け処理
Application.CutCopyMode = False
Set hoge = Nothing
CommandButton1.Caption = "Copy"
Else
Set hoge = Selection
hoge.Copy
CommandButton1.Caption = "Paste"
End If
End Sub
0954デフォルトの名無しさん
2005/09/16(金) 12:52:24マクロの場合、上でやってみるとVBAでの記述は「今コピーしているもの」になりますよね?
そうではなく、例えばA1セルの値を貼りたいんです。
Name="A1"じゃ「A1」と貼られるしw
0955デフォルトの名無しさん
2005/09/16(金) 13:41:460956デフォルトの名無しさん
2005/09/16(金) 21:43:33レスありがとうございます。
コピーは主にショートカット(Ctrl+C)を使うので、マクロのコピーにこれを
割り当ててコピーと一緒に選択範囲をPublic変数で持ち越して他のVBAで試す
ところまでは出来ていました。
ただそれをせずに、他にコピーの範囲がわかる方法があるのではと思い投稿
しました。
ヘルプをみたりしてみましたが、現状の自分のスキルではそこが限界みたいです。
どうもありがとうございました。
0957デフォルトの名無しさん
2005/09/16(金) 22:31:47釣りじゃないってw
ちょっと勉強不足
0958デフォルトの名無しさん
2005/09/16(金) 22:32:490959デフォルトの名無しさん
2005/09/16(金) 22:34:22当然
> Name="A1.value"でもダメなんだよな
当然
0960デフォルトの名無しさん
2005/09/17(土) 01:07:39エクセルなんですが
0000 0000
0000 0000
0400 3456
0450 これを 3456
3456 3456
3456 3456
3456
のように4を基準として上方向にそろえるようなプログラム
を作りたいのですが、どのようにすればよいのでしょうか?
教えてください。お願いします。
0961デフォルトの名無しさん
2005/09/17(土) 01:20:10数値ではなく文字列として扱って
あとはループと条件分岐と文字列操作
VBAのテク的には超初歩的な機能だけでいける
あとのアルゴリズム的な部分はVBA関係なくお前の知能次第
0962デフォルトの名無しさん
2005/09/17(土) 02:00:56返答ありがとうございます。
しかしながら初心者で低能なため
それらをどう組み合わせていいものかよく分かりません…。
具体的に教えていただけると有難いです
0963デフォルトの名無しさん
2005/09/17(土) 02:19:42ここは「コード書いてください」スレじゃないので
「説明聞いて出来ない奴はVBAなんか使うな」で終わりですよ。
VBAについて知りたいのではなく、単に具体的なコードが欲しいだけなら
そういうのを請け負ってるところもあるから、そういうところで依頼しなさい。
参考までにひとつ有名所を
ttp://www.officetanaka.net/order/index.htm
0964デフォルトの名無しさん
2005/09/17(土) 02:29:56すいません。ありがとうございました
0965デフォルトの名無しさん
2005/09/17(土) 07:12:41ここならコードも書いてくれるぞ
Excel総合相談所 37
http://pc8.2ch.net/test/read.cgi/bsoft/1125178942/
0966デフォルトの名無しさん
2005/09/17(土) 10:36:25>>912
>マルチするような奴
してないってばまさか板違いでもマルチと呼ばれのか? (((( ;゚Д゚)))ガクガクブルブル
0967デフォルトの名無しさん
2005/09/17(土) 10:43:58間違った時点で質問権失ってますからその通りです。
0968デフォルトの名無しさん
2005/09/17(土) 10:59:360969デフォルトの名無しさん
2005/09/17(土) 13:43:54両端ではない真ん中の2点って、何の座標でしょうか?
0971デフォルトの名無しさん
2005/09/18(日) 23:20:37出力しようと思っています。
xlsテンプレートには、Excelブックをオブジェクトとして挿入してます。
以下のような感じで記述しました。
Dim objExcel As New Excel.Application
Dim objBook As Excel.Workbook
Dim objSheet As Excel.Worksheet
Dim objSubBook As Excel.Workbook
Dim objSubSheet As Excel.Worksheet
objExcel.Workbooks.Open "テンプレートファイル"
Set objBook = objExcel.Workbooks(1)
Set objSheet = objBook.Worksheets("シート 1")
'挿入しているブック(名称:サブブック)を取得
Set objSubBook = objSheet.OLEObjects("サブブック").Object
Set objSubSheet = objSubBook.Worksheets("サブシート")
objSubSheet.Range("B2") = "TEST" '挿入しているブックを編集
objSheet.OLEObjects("サブブック").Activate
objSubBook.Close True
objBook.Close True, "出力ファイル"
objExcel.Quit
しかし、Activate でExcelが一瞬立ち上がってしまいます。
Activate を省略すると出力したxlsファイルの挿入オブジェクトの内容が
一度編集状態にしないと見た目が反映されません。
Excelを立ち上がらせずに裏で行ういい方法はありますでしょうか。
0972デフォルトの名無しさん
2005/09/18(日) 23:33:27ACCESS総合相談所 その13 【桐にしとけ】
http://pc8.2ch.net/test/read.cgi/bsoft/1121055646/
0973デフォルトの名無しさん
2005/09/19(月) 01:02:48そこはExcelスレと違って誘導する価値すらない糞スレだよなぁ……
>>971
良く分からないんで適当に答えるけどApplication.Visibleでなんとかできない?
0974デフォルトの名無しさん
2005/09/19(月) 02:02:55今Wordで実験してみまして、Word上のVBAで同じようにExcelテンプレートを使って
xlsファイル出力しようとしても同じようでしたので、Accessスレは微妙みたいです。
>>973
レス感謝です。objExcel.Visible = False を試してみましたが駄目でした。。。
972でも誘導されましたが、スレ違いだったでしょうか。
どうも実験内容からするとExcelスレ向きのような気がしてきました。。。
0975デフォルトの名無しさん
2005/09/19(月) 02:24:080976デフォルトの名無しさん
2005/09/19(月) 14:35:16通常のExcel操作で埋め込みオブジェクトを編集状態にせず最新状態に反映する
方法があれば、その操作をマクロで記録してVBA化すればどうかな、と思ったもので。
0977デフォルトの名無しさん
2005/09/19(月) 14:49:58Excelでコマンドボタンをクリックするとチェックボックスのチェックが外れる、という仕組みを作りたいのですが
どうも上手くいきません。
コマンドボタンを押した際に
Sub ボタン1_Click()
ActiveSheet.Checkbox1.Value = 0
End Sub
このような動きをするよう記述をしたのですが
「オブジェクトはこのプロパティ、またはメソッドをサポートしていません」と表示され
思い通りの結果が得られません。
すみませんがどなかたご教授いただけますでしょうか。
よろしくお願いします。
0978デフォルトの名無しさん
2005/09/19(月) 14:57:02うちではその方法でうまくいくよ
0979デフォルトの名無しさん
2005/09/19(月) 15:30:10散々既出。ここ見ろ。
ttp://www.tt.rim.or.jp/~rudyard/torii009.html
0980デフォルトの名無しさん
2005/09/19(月) 15:34:23恥ずかしい奴だな( ̄ー ̄)ニヤリッ
0981977
2005/09/19(月) 16:31:05ご回答ありがとうございました。
うちの環境ではどうもうまくいきません。
先ほどからについて調べているのですが、参考になるものが見当たらず相当参っています。
他に何か方法は無いでしょうか?
すみませんがよろしくお願いします。
0982デフォルトの名無しさん
2005/09/19(月) 16:47:54もう一度といわずもう十度くらいよく見直してみな。
と、その前に新規ブック作って>>977の部分だけ1からやってみろ。
これでダメならExcelかシステムがバグってるんだから、
ExcelやOSの再インストールしてみな。
0983デフォルトの名無しさん
2005/09/19(月) 17:27:050984デフォルトの名無しさん
2005/09/19(月) 17:46:450985デフォルトの名無しさん
2005/09/19(月) 17:49:040で問題出るなら、Falseにしたって同じでしょ。
0986デフォルトの名無しさん
2005/09/19(月) 17:49:120987デフォルトの名無しさん
2005/09/19(月) 19:31:050988デフォルトの名無しさん
2005/09/19(月) 19:32:360989デフォルトの名無しさん
2005/09/20(火) 00:09:58住所録などを作成したいのですが、いくつかのTextボックスに
住所や郵便番号を入力し、「登録」ボタンを押したら「FlexGrid」に
登録内容を表示するようにするにはどうしたらよいのでしょうか?
すみませんがどなたか教えてもらえないでしょうか?
0990デフォルトの名無しさん
2005/09/20(火) 00:22:43標準コントロール以外を使いたいならVBAではなくVBの勉強しろ。
まあ、答えというとtextmatrix() = テキストボックス.textかな。
あとは自分で調べようね。
レス数が950を超えています。1000を超えると書き込みができなくなります。