Excel VBA質問スレ Part13

このエントリーをはてなブックマークに追加
952951:2009/12/26(土) 21:42:37
自己解決しましたスンマセン
953デフォルトの名無しさん:2009/12/26(土) 21:44:27
>>951
コントロールキーを押しながらクリック又はドラッグ
954デフォルトの名無しさん:2009/12/26(土) 22:20:02
>>953
いやそれをVBAでやる方法だろ
955sage:2009/12/27(日) 12:24:20
通常、グラフ作成するとセルを参照しますけど、配列変数を参照したグラフ
作成はマクロで出来ますでしょうか?
956955:2009/12/27(日) 13:19:21
追記します。
Range(cells(1,1),cells(10000,500))の範囲を3D等高線グラフにしたいん
ですが、(option base 1⇒) A(10000,500)の配列変数を利用して3D等高線
グラフを作成したいと思っています。
方法があれば教えて下さい。あと、こんな事しても表示までの時間は速く
ならない?ですか?
957デフォルトの名無しさん:2009/12/27(日) 15:33:23
>>955
できない
958955:2009/12/27(日) 17:50:48
そうですか。。残念ですが仕方ないですね。
セル参照で進めます。
959デフォルトの名無しさん:2009/12/27(日) 19:18:15
コメントで悩んでいます。

たとえば、指定のセルにコメント表示で
山田 100個とコメントに表示はできますが
ここにコメントを追加して、高木 250個というコメントを追記して
山田 100個
高木 250個
とコメントを表示したい場合はどうすればいいのでしょうか?
960デフォルトの名無しさん:2009/12/27(日) 19:21:26
>>958
できるよ

aが配列だとして
ActiveChart.SeriesCollection(1).Values = a
とかやると、配列が元データになる
画面表示は大変なことになるけど・・・
961デフォルトの名無しさん:2009/12/27(日) 20:05:19
>>959
素人ですが

Range("A1").Comment.Text Text:=Range("A1").Comment.Text & "高木 250個"

でどうでしょう
962デフォルトの名無しさん:2009/12/27(日) 20:14:39
>>959

' Macro1 Macro
'
Range("E7").Select
Range("E7").Comment.Text Text:="******:" & Chr(10) & "山田 100個" & Chr(10) & "高木 250個" & Chr(10) & ""
Range("E8").Select
End Sub

マクロの記録でこんなのが出来たから、必要な部分を追加すれば良いだけでは?

963デフォルトの名無しさん:2009/12/27(日) 21:06:19
vbCrLf
964デフォルトの名無しさん:2009/12/27(日) 23:53:41
>>959
追記だけなら
正しい使い方かどうかは知らんけど こういう方法もあったりする
Range("A1").Comment.Text Start:=9999, Overwrite:=0, Text:=Chr(10) & "高木 250個"
965デフォルトの名無しさん:2009/12/30(水) 00:31:04
セルに入力された日付から
曜日を抜き出して処理をしたいのですが
うまく取得できません。
ぐぐってもdateを使ってそこから曜日を取得するようなものばかりです。

あらかじめセルに1月1日(月) みたいに入力されているところから
曜日を取得したいと思っています。

Dim a As data
a = ("A1")
Range("A2") = Weekday(a)
Range("A3") = WeekdayName(Weekday(a))

よろしくお願いします。
966デフォルトの名無しさん:2009/12/30(水) 07:44:37
>>965
MsgBox Format(Range("A1").Value, "aaaa") & " or " & Format(Range("A1").Value, "aaa")
967デフォルトの名無しさん:2009/12/30(水) 13:01:19
>>965
文字列として 1月1日(月) が 入力されているなら
ActiveSheet.Range("A3").Value = Left(Right(ActiveSheet.Range("A1").Value, 2), 1)
と するとか
968デフォルトの名無しさん:2009/12/31(木) 02:19:36
959ですが、質問に答えてくれた方ありがとうございました。
その後、何とかできたのでよかったなぁと思っています。
969デフォルトの名無しさん:2009/12/31(木) 23:18:45
ONKEY命令を「CTRL」+「C」という本来はコピーのショートカットのキー割り当てをワケあって
マクロに割り当てているのですが、
この命令を同じエクセル内で本来の使い方(CTRL+Cのコピー)ができるように戻す方法はないのでしょうか?

970デフォルトの名無しさん:2010/01/01(金) 07:21:49
>>969
どんな訳か知らないけど、マクロ割り当てるのは Ctrl+Shift+キー にしようぜ。
971デフォルトの名無しさん:2010/01/01(金) 07:38:44
質問です。
001〜200の値をFor Nextで繰り返したいのですが、
001〜099までが繰り返せません。
今は以下の様に00+(1〜9)、0+(10〜99)、100〜200に分けているのですが、
For i1 = 1 To 9
A = "00" & i1
Next i1
For i2 = 10 To 99
B = "0" & i2
Next i2
For i3 = 100 To 999
C = i3
Next i3

これを一括で処理することは可能でしょうか?

972デフォルトの名無しさん:2010/01/01(金) 07:57:00
>>971
Sub test()
Dim i As Integer
For i = 1 To 200
Debug.Print Right("00" & CStr(i), 3)
Next i
End Sub
973デフォルトの名無しさん:2010/01/01(金) 09:18:10
>>972
ありがとうございます。出来ました。
974デフォルトの名無しさん:2010/01/01(金) 23:28:41
入力限定で、数字のみは分かったのですが
数字とマイナスのみの場合はどうやればいいでしょうか?
975デフォルトの名無しさん:2010/01/02(土) 14:25:53
Excel VBAを使えばプロキシ経由で掲示板に1行目から順に掲示板へ連続投稿できますか?
976デフォルトの名無しさん:2010/01/02(土) 14:49:11
出来るだろうけど重い串使うと同期かけるのがマンドクセだと思う
977デフォルトの名無しさん:2010/01/02(土) 14:55:48
>>976
やるとすればどのように実現するのでしょうか?
978デフォルトの名無しさん:2010/01/02(土) 15:11:09
本文作成 → URL合成 → 書き込み実行

問題は書き込み実行だね
データを直で送るにしろテキスト入力にしろ串使う際のラグをどうやって処理するかだかねえ
思いつきだけどページからソースデータ抜き出して、最後部にある定型文言と合致判定を使うとか出来そうだな

XML制御したほうがいいとは思うけど
979デフォルトの名無しさん:2010/01/02(土) 15:30:26
>>975
ほかの言語でやったほうが楽じゃね?
本文と数行のスクリプト用意すればできるから。
980デフォルトの名無しさん:2010/01/02(土) 15:30:46
そんな荒しに構うなって
981デフォルトの名無しさん:2010/01/03(日) 23:45:15
宜しくお願い致します。
特定の文字の前後どちらでも良いので、
指定した文字の前後どちらかにカーソルを挿入
するマクロを作りたいと思います。
そこであれこれ調べましたが結局分からず困っています。
宜しくお願い致します。

982デフォルトの名無しさん:2010/01/04(月) 00:10:34
sendkeyでも無理なのかな
983デフォルトの名無しさん:2010/01/04(月) 00:20:15
セルの中にabcdeと書いてて
そのcとdの間みたいにカーソルとかは無理と思うけど
984デフォルトの名無しさん:2010/01/04(月) 00:24:58
Excel VBAでHTTPサーバを作れますか?
985デフォルトの名無しさん:2010/01/04(月) 00:34:59
テキストボックスとかなら出来たようなきもしなくも
どうだっけな
986デフォルトの名無しさん:2010/01/04(月) 08:04:37
>>981
sendkeysで出来ました
cells(1,1)に0123456789と合って
4と5の間にカーソルを置きたい場合は
Sub test()
Cells(1, 1).Select
SendKeys "{F2}"
For i = 1 To 5
SendKeys "{LEFT}"
Next i
End Sub
もっと良い方法がありそうな
987デフォルトの名無しさん:2010/01/04(月) 10:56:34
>984
できるんじゃね?
#意味ねーと思うけどw
988デフォルトの名無しさん:2010/01/04(月) 23:34:06
981です。本当に皆さん有難うございます。
感謝です!!!
>>982
sendkeyなるものを始めて知りました。
これで何とかなりそうです。
有難うございます。
>>986
これで問題は解決しました。
今まで数百会った煩わしい作業が一気に楽になります。
本当にわざわざコードまで考えて頂き感謝です。
僕の頭では一生考えても無理でした。
本当に有難うございます!

989デフォルトの名無しさん:2010/01/05(火) 01:52:39
小数点第二位までの入力以外はエラー出るようにしたいんだけどどうしたらいいのか・・・

具体的には、テキストボックスに0.01〜5.00以内の入力をさせて、それ以外の入力(3.564みたいに小数点3位以下)はNGみたいにさせたいんだが。
990デフォルトの名無しさん:2010/01/05(火) 02:54:13
色々ググったら
len関数 isnumeric関数 instr関数の複合でチェック出来そうだけど他の方法あれば後学のためにも教えてください。
991デフォルトの名無しさん:2010/01/05(火) 03:55:18
>>989
100倍して切捨てして比較するとか。
int(n * 100) = (n * 100)
992デフォルトの名無しさん:2010/01/05(火) 07:04:19
if ROUNDDOWN(数値,桁数)=入力値 then とかできるんじゃないの
993デフォルトの名無しさん:2010/01/05(火) 13:44:12
数値として処理すると誤差でうまく動かないことがあるから文字列でやった方が安全
994デフォルトの名無しさん:2010/01/06(水) 06:07:09
>>990
お前の事だ
脳味噌のレベルが低いって事
995デフォルトの名無しさん:2010/01/06(水) 09:04:01
初心者です、教えて下さい。
VBAからWindows(DOS)にシステムコール(DIR)して、カレントフォルダーに存在する
全てのファイル名を得て、結果をセルに表示させたいのですが、
システムコールって可能なんですか?
996デフォルトの名無しさん:2010/01/06(水) 09:21:42
APIの事を言ってんのだったら可能だけど、別にそれを呼ばなくても一覧の取得は出来るっしょ
997デフォルトの名無しさん:2010/01/06(水) 09:38:10
>>996
そうなんですか?
自分はDOSしか知らず、仕事で長年WINDOWSは使ってましたが
メールくらいしかやりません、本日はじめて自動マクロを経験しました、
ヘルプで調べてもよく分かりません・・・
今まで必要に応じて専用ツールを作ってくれていた事務の女の子がいましたが、
暮れに辞めてしまって、新年から仕事が回らずてんてこ舞い状態です。
998996:2010/01/06(水) 09:56:20
ぐぐればいっくらでも見本は出てくるけど…


Sub Sample1()
Dim i As Long, buf As String
Const Path As String = "C:\Work\"
buf = Dir(Path & "*.*")
Do While buf <> ""
i = i + 1
Cells(i, 1) = buf
buf = Dir()
Loop
End Sub



Sub Sample2()
Dim i As Long, FSO As Object, f As Object
Const Path As String = "C:\Work\"
Set FSO = CreateObject("Scripting.FileSystemObject")
MsgBox "全部で" & FSO.GetFolder(Path).Files.Count & _
"個のファイルがあります"

For Each f In FSO.GetFolder(Path).Files
i = i + 1
Cells(i, 1) = f.Name
Next f
Set FSO = Nothing
End Sub
999デフォルトの名無しさん:2010/01/06(水) 10:30:25
>>998
どうもすみません。
早速、自分のエクセルプロジェクトにコピーして検証&調整してみます、

WINDOWS系は難しいですね、DOSは楽でした(遠い目)
昔は、DIRをリダイレクトするバッチを実行すれば良かったんですが
WINDOWSになってから全然ついていけなくなってしまって・・・
実は、今週末に部長に提出する資料の為に必要な機能なんですよ、
助かりました、本当に有難うございました。
1000デフォルトの名無しさん:2010/01/06(水) 10:32:00
999=997=995です、念の為。
それと998さん、本当に本当に有難う御座いました。
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。