Excel VBA質問スレ Part6
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2008/03/11(火) 19:31:39質問前に 【 >>2-3 】 あたりを良く読むこと
前スレ
http://pc11.2ch.net/test/read.cgi/tech/1197448064/
★1 質問テンプレ(雛形)は用意しませんが、OSとExcelのバージョンは必ず書きましょう。
★2 ExcelのVBA以外の部分に関する質問はNGです。
但し、VBA無しでも出来ることだが、あえてVBAでやりたいって物に関してはOK。
★3 ExcelのVBE(Visual Basic Editor)を使うとしても、VBAの分野以外に関してはスレ違いです。
VBAとは、『Visual Basic for Application』の略で
Application
├Workbooks
|└Workbook
| ├Worksheets
| |└Worksheet
というApplication以下のオブジェクトを、VB言語で操作するものを指します。
例えExcel付属のVBE(Visual Basic Editor)を利用しようとも、このApplication以下のブックやシート、
セルやオブジェクト等を操作するもの以外はVBA分野の話ではないので、ここでは聞かないでください。
★4 とりあえず、Excelのインスタンスを作らずにVB6で出来ることは全てスレ違いだと思ってください。
★5 レベルはどうあれ、ここはプログラマ用の板スレです。プログラマとは、自分でプログラムを組み
コードを書く人の事なので、自分でやるきは全く無く、丸投げしようって人はお断りです。
ヒントを貰えばあとは自力でなんとかしますって人のみどうぞ。
0003デフォルトの名無しさん
2008/03/11(火) 22:09:4401 http://pc11.2ch.net/test/read.cgi/tech/1054356121/
02 http://pc11.2ch.net/test/read.cgi/tech/1168308855/
03 http://pc11.2ch.net/test/read.cgi/tech/1180192018/
04 http://pc11.2ch.net/test/read.cgi/tech/1189814602/
05 http://pc11.2ch.net/test/read.cgi/tech/1197448064/
0004デフォルトの名無しさん
2008/03/12(水) 13:39:54Range("C3,E3,D5").Select
Range("D5").Activate
でやると、一応完成するのですが、間違いを消去した時
全てのセルデータまで消えてしまうのですが・・・
どう処理したらいいのでしょう?
質問1っパツ目ではずかしい
0005デフォルトの名無しさん
2008/03/12(水) 14:08:310006デフォルトの名無しさん
2008/03/12(水) 14:20:32これをマクロでしたのです。TEXTBOXを使えば簡単ですけど
あえて使わずして仕上げたいです。
0007デフォルトの名無しさん
2008/03/12(水) 14:36:28・TextBoxを使えばどのように簡単になるのか、コードも添えて説明しろ
0008デフォルトの名無しさん
2008/03/12(水) 15:22:11ただ、DELETEしてるだけ。
・TextBoxを使えばどのように簡単になるのか、コードも添えて説明しろ
TextBox プロパティで順番つけてるだけだよ。
0009デフォルトの名無しさん
2008/03/12(水) 15:35:040010デフォルトの名無しさん
2008/03/12(水) 16:28:07Range("D5").Activate
だけでコード書いてないよ。
TextBoxなら
cells(1,1)=textbox1
cells(1,4)=textbox2
cells(2,1)=textbox1
って所かな?あえて書けば・・・
0011デフォルトの名無しさん
2008/03/12(水) 16:41:27だーかーらー、
>>6
>>間違ったセルだけ消せば?
>これをマクロでしたのです。
これのコードを書けって言ってるの。
>って所かな?あえて書けば・・・
何がどう簡単になったか説明しろって書いただろ?
>>4
>指定したセル以外の入力を避けたい
これの意味が曖昧だから、ちゃんと説明しろってこった。
0012エスパー君登場
2008/03/12(水) 16:45:000013デフォルトの名無しさん
2008/03/12(水) 17:22:49とエンターキーを押すごとにセルの移動が行われる様にしたい(繰り返し)
これは、例えば、
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Range("C3,E3,D5").Select
Range("D5").Activate
End Sub
で可能。でも、E3に入ったデータのみ修正したい場合C3、D5も消えちゃう
これでは、使い物にならい。
コントロールを使用した場合プロパティで順列の設定を指定しまうので
いちいちコードを書かなくていいから簡単ってこと。
textbox1の次にtextbox2へってENTER押せば設定した順の勝手にカーソル
うごくでしょ。cells(1,3)=textbox1
cells(3,5)=textbox2
とか書けば指定したセルにしか入力されないでしょ?
それを、使わないで、セルc3の次にセルe3へ入力その後セルd5へ入力またセルc3へ戻る
とエンターキーを押すごとにセルの移動が行われる様にしたい(繰り返し)
わかってくれた?
0014デフォルトの名無しさん
2008/03/12(水) 17:43:050015デフォルトの名無しさん
2008/03/12(水) 17:43:280016デフォルトの名無しさん
2008/03/13(木) 08:57:37Select Case Target.Address
Case "$C$3"
Range("$E$3").Activate
Case "$E$3"
Range("$D$5").Activate
Case "$D$5"
Range("$C$3").Activate
End Select
End Sub
質問がアレすぎるけどな、こういうことか??
シートへの入力も消去もキー入力ということなら。
0017デフォルトの名無しさん
2008/03/13(木) 11:53:09For Each myWS In Worksheets
If myWS.name =sh_name Then (シートが存在している処理)
Next myWS
でシートの存在を調べているのですが、グラフのみがあるシートが引っ掛かりません。
どう書けばよいでしょうか?
001810
2008/03/13(木) 12:19:51日本語がわるいのかぁ・・・
反省します。
0019デフォルトの名無しさん
2008/03/13(木) 18:47:58ワークシートを調べる →Worksheets
グラフシートを調べる → Charts
ワークシート、グラフシート両方調べる → Sheets
0020デフォルトの名無しさん
2008/03/14(金) 09:21:57文字列"1","2","3","振1","振2","振3”,"休1","休2","休3"のどれかをセルに入力したのち
それぞれを数字6500, 6600, 6700,,,, と処理していき最後は関数SUM()で合計値をだしていきたいのです
どういった関数でできるのでしょうか?
例でもあるとうれしいのですが、どなたか分かりますでしょうか?
1,1,1,1,1,0,0, ここに6500x5の合計値
2,2,2,2,2,0,0 ここに6600x5の合計値
振3,3,3,3,3,0 ここに6700x4と7000の合計値
といった具合にセルに入力されています
0021デフォルトの名無しさん
2008/03/14(金) 10:08:44それワークシート関数(なんたらLookupとか)で実現できるけど、マクロでやりたいの?
0022デフォルトの名無しさん
2008/03/14(金) 10:18:52マクロと関数の違いを理解していないのですが、
実現できれば問題ないです。
0023デフォルトの名無しさん
2008/03/14(金) 10:47:07IF 2 ELSE 6600
...
といった感じの関数を組んでいくのでしょうか?
もしくは文字列を数字に変換にする関数でもあるのでしょうか?
0024デフォルトの名無しさん
2008/03/14(金) 11:36:391 6500
2 6600
3 6700
…
という表を作って、合計するセルに
=VLOOKUP(A1,$G3:$H11,2)+VLOOKUP(B1,$G3:$H11,2)+・・・
とかすればいい。
A1, B1, …はデータのセル、$G3$H11は上の表のセル範囲。
0025デフォルトの名無しさん
2008/03/14(金) 16:04:16なお、>>24のほうが正解だと思われる。
値を入れたいエクセルを開いて、ツール→マクロ→VisualBasicEditor
(たぶん)左上あたりのプロジェクト枠のなかで、
右クリック→挿入→標準モジュール
module1ができるはずなので、 下記を貼付
Public Function MojiChange(moji As String) As Integer
Select Case moji
Case "1": MojiChange = 6500
Case "2": MojiChange = 6600
Case "3": MojiChange = 6700
Case "振1": MojiChange = 6800
Case "振2": MojiChange = 6900
Case "振3": MojiChange = 7000
Case "休1": MojiChange = 7100
Case "休2": MojiChange = 7200
Case "休3": MojiChange = 7300
Case Else: MojiChange = 0
End Select
End Function
ファイル→保存して終了を選ぶ
今度はエクセル側で、 たとえばA1に「1」を入れる。
A2に「=MojiChange(A1)」といれる。
するとA2には6500と入っている。
0026デフォルトの名無しさん
2008/03/14(金) 18:27:13これを上手く取得する方法はないでしょうか?
0027デフォルトの名無しさん
2008/03/14(金) 19:22:52つsplit関数
0028デフォルトの名無しさん
2008/03/14(金) 19:22:580029デフォルトの名無しさん
2008/03/14(金) 22:12:01lookup()じゃなくて、vlookup()を使う理由は?
# 昼間lookup()版を書き込もうとしたらアクセス制限されてた(:;
0030デフォルトの名無しさん
2008/03/14(金) 23:17:450031デフォルトの名無しさん
2008/03/15(土) 00:54:070032デフォルトの名無しさん
2008/03/15(土) 01:52:35・自分のプログラムのバグなのかコンパイラのバグなのかわからない
・他の仕事に応用できない糞開発ツールの独自世界を必死に学習している
・テキストエディタで書いたほうが効率的なのに糞UIツールを懸命に使っている
糞だけど、政治的な理由で無理やり使わされているんですよね
もういい加減、我慢するのはやめませんか?
・糞開発ツールを部下に押し付ける上司の命令は無視しましょう。
上司は糞開発ツールが使われる実績を作ることであの会社のごきげんをとっているのです。
・あの糞開発ツール提供会社には「糞開発ツールは話にならない」と突き放しましょう。
バグレポートなどしてはいけません。改善要求などもってのほかです。
あの会社はあなたたちのことをテスター/モルモットとしか思っていません。
・あの会議で「糞開発ツールを使ったら生産性がxx%アップしました」
なんて話が出たら力強く机を叩き、会議室を出ましょう。
あの人たちは糞開発ツールをマンセーすることで立場を確保しているのです。
糞な開発ツールを糞だと言える、そんな当たり前の環境をみんなの力で取り戻しましょう。
0033デフォルトの名無しさん
2008/03/15(土) 01:57:490034デフォルトの名無しさん
2008/03/15(土) 19:21:33簡単に関数で解決できても、小難しくVBA自作関数で返してやるのがこのスレの醍醐味だろ?
0035デフォルトの名無しさん
2008/03/15(土) 21:17:04Excel総合相談所 66
http://pc11.2ch.net/test/read.cgi/bsoft/1204443608/
0036デフォルトの名無しさん
2008/03/15(土) 23:33:540037デフォルトの名無しさん
2008/03/16(日) 12:10:16コピペにマジレス(´∀`)カコイイ!
0038デフォルトの名無しさん
2008/03/17(月) 13:28:51マクロが作成されましたが、いざ実行してみると〜.XLAファイルが見つかりませんとエラーがでます。
どうすればよいでしょうか?
0039デフォルトの名無しさん
2008/03/17(月) 15:35:24アクティブなグラフに変更を加えるマクロだったので正直使えません、グラフ選択時に消えなくする方法を教えて下さいm(__)m
長文失礼しました
0040デフォルトの名無しさん
2008/03/17(月) 21:36:12http://www.computerworld.jp/topics/dm/101230.html
この記事の内容が理解できないのだが
誰かわかりやすく説明してください。゜(ノД`)゜。
0041デフォルトの名無しさん
2008/03/17(月) 21:38:39彡川三三三ミ 9:00 起床
川出 ::::::⌒ ⌒ヽ 9:05〜9:20 朝食(昨日の残り物)
出川::::::::ー◎-◎-) 9:25〜12:25 溜まっていたギャルゲーを消化
..川(6|:::::::: ( 。。)) 12:30〜13:00 昼食(レトルトカレー)
出川;;;::∴ ノ 3 ノ 13:05〜16:00 ゲーハー板で妊娠を煽る
ノ\_;;;;;;;;;;;;;;;;ノ 16:01〜17:00 半角二次元板でエロ同人誌を漁る
( * ヽー--'ヽ ) 17:05〜17:55 ゲームをやる
(∵ ;) ゚ ノヽ ゚ ):) . 18:00〜19:28 アニメを見る
(: ・ )--―'⌒ー--`,_) 19:30〜19:58 飯を食いながらアニメを見る
(___)ーニ三三ニ-) .20:00〜24:00 ゲーム(FF11)
(∴ ー' ̄⌒ヽωニつ 1:02〜3:12 ゲーム(エロゲー)
`l ・ . /メ / . 3:14〜3:26 エロ同人誌でオナニー
ヽ ∵ /~- /. 3:27〜 就寝
(__)))))_))))) ※風呂に入るのは一週間に一度だけ
0042デフォルトの名無しさん
2008/03/17(月) 21:39:44Excelが正しい数値ではなくゼロを返すというもの。Excel 2003において、株価や在庫量
などのデータを外部ソースからリアルタイムで取得し、それらをExcelの配列にプラグイン
しているケースで発生する。
0043デフォルトの名無しさん
2008/03/17(月) 21:43:48After you install security update MS08-014 on a computer that has Microsoft Office Excel 2003 installed,
array-entered functions that contain a Visual Basic for Applications (VBA) macro that refers to a Real Time Data source return an incorrect value.
The incorrect value is usually 0.
--
どこを説明しろと?
0044デフォルトの名無しさん
2008/03/17(月) 21:47:59>>データを外部ソースからリアルタイムで取得し、それらをExcelの配列にプラグインしているケース
これってRTD関数を使ってる場合ってこと?
そんでVBA上で配列に格納すると発生するってこと??
0045デフォルトの名無しさん
2008/03/17(月) 23:34:29RANGE("A1").Offset(3,0)としたとき、ターゲットはセルA4をさします。
ただ、A2とA3を結合していた場合、ターゲットはA5になります。
Offset関数は結合を無視することって出来ないんですか?
上の例で言えば、間に結合があろうがなかろうがA1を基準として
下に3セル分移動したA4を指定したいんですが・・・
相対指定はOffsetくらいですよね?
0046デフォルトの名無しさん
2008/03/17(月) 23:48:35i =1
i = i + 3
RANGE("A" & i)
じゃあだめなのか?
セル値の固定はシートに任せると思ったとおり動かないことがあるので、
モジュール側で指定するようにしてる。
26進数変換モジュールを用意しておくと使い勝手もよくなる。
0047デフォルトの名無しさん
2008/03/18(火) 00:12:560048デフォルトの名無しさん
2008/03/18(火) 00:29:570049デフォルトの名無しさん
2008/03/18(火) 08:24:080050デフォルトの名無しさん
2008/03/18(火) 09:42:40仕様が変更されたのかな。
0051デフォルトの名無しさん
2008/03/18(火) 12:22:180052デフォルトの名無しさん
2008/03/18(火) 13:14:08もっと具体的に
0053デフォルトの名無しさん
2008/03/18(火) 18:22:10あるExcelのシートの文字列の一部を置換したいとします。その文字列を入力のボックス作成、そこを手入力し、置換出来る様にしたいのです。
例えば"犬"を"猫"としたり、"犬"を"馬"と置換出来る様に組みたいです。
携帯なのでソースは別途見せます。
0054デフォルトの名無しさん
2008/03/18(火) 22:11:13ツールを期限付き(超最短)で作るハメになったんだけど
これって1日半ぐらいあればマスターできますよね?
0055デフォルトの名無しさん
2008/03/18(火) 22:13:390056デフォルトの名無しさん
2008/03/18(火) 22:15:30ありがとうございます!!
0057デフォルトの名無しさん
2008/03/18(火) 23:52:20セルに挿入されたコメント(セルの右上に赤い三角のでるやつ)
にかいてある文章を取得することってできるのでしょうか?
自分で色々ヘルプを見てみたところVBAでコメントの文章の設定はできるようなのですが、
取得する方法が分かりません。
具体的に言うと、ある人が仕事に使う表(約40シート、各シートに20×5セルぐらい)を
エクセルに打ち込んだんですが、表の中に何箇所か、セルに値を入れるところを
コメントに入れてしまったんです。
セル内におさまらなかったし、コメントだとカーソルをもっていくと長い文章も表示されて
見やすいからだそうですが、その仕事を引きついた自分はやりにくくてしょうがいないので
コメントの設定されているセルの値にそのままコメントの文章を入れたいのです。
手作業でやると結構時間がかかりそうな量なのです。
マクロの記録で「コメントの編集→コメント文章のコピー→セルに貼り付け」
をやってみたのですが、コメント文章のコピーの部分が記録されていませんでした
分かる方いたらお願いします。
0058デフォルトの名無しさん
2008/03/19(水) 00:12:020059デフォルトの名無しさん
2008/03/19(水) 00:23:43If Cells(1, 1).NoteText <> "" Then
Cells(1, 1) = Cells(1, 1).NoteText
End If
End Sub
0060デフォルトの名無しさん
2008/03/19(水) 00:32:21>>59さんのnotetextで取得できました・・・
これも試したはずなんですが、今やったら動いたので
なんか別の原因でエラー出てたみたいです
助かりました
>>58
せっかく回答いただいて申し訳ないのですが、うちの環境だと
comment.textはやっぱりエラーになりました
「オブジェクトまたはwithブロックが定義されていません」
とのことです
これも別の原因があるのかな?
ともかくありがとうございます
0061デフォルトの名無しさん
2008/03/19(水) 08:47:178行づつ表示したいのですが、難しくて作れません。
誰か助けてちょ。
Dim a As Long
On Error Resume Next
a = 1
If CommandButton14.Click Then
ComboBox1.ListIndex = a
a = a + 1
End If
CommandButton14.Click まずここだめー
そして
ComboBox1のリストが閉じちゃう。
ハイ、ダメェ〜
エンタの見すぎですいません
0062デフォルトの名無しさん
2008/03/19(水) 11:58:320063デフォルトの名無しさん
2008/03/19(水) 12:43:540064デフォルトの名無しさん
2008/03/19(水) 13:18:020065デフォルトの名無しさん
2008/03/19(水) 13:25:53それを真似されちゃぁねぇ
>>64
無理じゃないか・
0066デフォルトの名無しさん
2008/03/19(水) 13:54:000067デフォルトの名無しさん
2008/03/19(水) 14:07:00DoCmd.GoToControl "コンボボックス名"
SendKeys "%{down}" , true
で開くけれどな
0068デフォルトの名無しさん
2008/03/19(水) 15:46:57可能でしょうか。
0069デフォルトの名無しさん
2008/03/19(水) 15:59:580070デフォルトの名無しさん
2008/03/19(水) 17:13:30Sub ppp()
Dim i As Byte
Dim hoge() As Byte
For i = 1 To 5
ReDim Preserve hoge(i)
Range("A" & i).Select: hoge(i) = Selection.Value
ActiveCell.Offset(0, 1).Value = "済"
Next i
End Sub
offsetを使いたい場合、上みたいにいちいちセレクト
しなくてはいかんのでしょうか・・ということなのですが。
hoge(i) = Range("A" & i).Valueで値をとって、そこから、
オフセットでセル移動をすることは出来ないですか?
0071デフォルトの名無しさん
2008/03/19(水) 17:36:36(1)
hoge(i) = Range("A" & i).value
Range("A" & i).Offset(0, 1).Value = "済"
(1')
with range("A" & i)
hoge(i) = .value
.offset(0, 1).value = "済"
end with
(2)
hoge(i) = Range("A" & i).value
Range("A" & i + 1).Value = "済"
0072デフォルトの名無しさん
2008/03/19(水) 17:54:41あ、そういうことが出来るんですか。
ありがとうございます。早速試します。
0073デフォルトの名無しさん
2008/03/19(水) 21:00:41ってのはダメプログラムの良い証拠
0074デフォルトの名無しさん
2008/03/20(木) 01:22:17スタート列変数 start
ゴール列変数 end
上記の3つの変数を使って指定したレコード範囲だけ色を変更することは
できるのでしょうか?色は何色でもいいです。
0075デフォルトの名無しさん
2008/03/20(木) 01:38:280076デフォルトの名無しさん
2008/03/20(木) 02:22:590077デフォルトの名無しさん
2008/03/20(木) 11:33:41型が一致しませんとでてしまします。原因がわからないので教えてください。
Dim hogehoge(999) As String
'関数呼び出し
method(hogehoge)
---------------------------------------------
'関数実体
Function method(hogehoge() As String)
0078デフォルトの名無しさん
2008/03/20(木) 12:06:110079デフォルトの名無しさん
2008/03/20(木) 12:16:150080デフォルトの名無しさん
2008/03/20(木) 12:39:16Dim hogehoge(999) As String
'関数呼び出し
Call method(hogehoge)
End Function
Function method(hogehoge() As String)
'関数実体
MsgBox UBound(hogehoge())
'
End Function
008177
2008/03/20(木) 13:20:50あざーす。
エラーは回避できたんだけどなぜCallをつけると
エラーがでなくなったのかという根本的な原因がよくわからなかったんでありますが
なぜかわかります?データ型の不一致っていうと根本的に
構文の使い方そのものが間違ってるイメージがあるんですが・・
Callステートメントについて少し調べたんだけど
このステートメントの役割は関数の呼び出しを明示的に宣言しているのと
参照渡しと値渡しの使い分けをこっちでしなくて済むってことらしいんですが
0082デフォルトの名無しさん
2008/03/20(木) 13:23:59'関数呼び出し
method(hogehoge)
---------------------------------------------
'関数実体
sub method(hogehoge() As String)
0083デフォルトの名無しさん
2008/03/20(木) 17:19:36明示的という日本語は存在しない
0084デフォルトの名無しさん
2008/03/20(木) 17:33:500085デフォルトの名無しさん
2008/03/20(木) 17:48:37strTEXT = method(hogehoge)
実行したいだけだと
call method(hogehoge)
と使ってきたので、なぜと言われても困るなぁ…
0086デフォルトの名無しさん
2008/03/20(木) 18:13:15明示的にCallステートメントをメソッド名の前に付けなくてはならないという
暗黙の了解がVBAにはあるわけだ。あざーす
0087デフォルトの名無しさん
2008/03/20(木) 18:15:06あるよ
0088デフォルトの名無しさん
2008/03/20(木) 18:35:11広辞苑か何かに追加されてないといけないのか?
0089デフォルトの名無しさん
2008/03/20(木) 18:38:11VBAは初めて?
普段は何で書いてるの?
0090デフォルトの名無しさん
2008/03/20(木) 18:48:11ヒミツのアッコちゃん
0091デフォルトの名無しさん
2008/03/20(木) 18:57:23ヒミツのアッコちゃん
っつー言語は本当にあるんだな
織田信長の乗りだな
0092デフォルトの名無しさん
2008/03/20(木) 21:32:16できました、ありがとうございます。
0093デフォルトの名無しさん
2008/03/20(木) 22:01:16もしそうなら、methodと括弧の間に空白が置かれていると思うし、method hogehogeで呼べるはずってことだけど。
0094デフォルトの名無しさん
2008/03/20(木) 23:02:300095デフォルトの名無しさん
2008/03/20(木) 23:17:530096デフォルトの名無しさん
2008/03/21(金) 02:21:410097デフォルトの名無しさん
2008/03/21(金) 05:40:24勝手に括弧を消されるのが気に入らない
0098デフォルトの名無しさん
2008/03/21(金) 06:04:35なにが悪いのでしょう?
With oThisSheet
.Rows(p_row + cnt).Value = .Rows(p_eval_row + 1).Value
.Rows(p_row + cnt).FormulaR1C1 = .Rows(p_eval_row + 1).FormulaR1C1
.Rows(p_row + cnt).NumberFormat = .Rows(p_eval_row + 1).NumberFormat
.Rows(p_row + cnt).FormulaR1C1Local = .Rows(p_eval_row + 1).FormulaR1C1Local
.Rows(p_row + cnt).NumberFormatLocal = .Rows(p_eval_row + 1).NumberFormatLocal
End With
0100デフォルトの名無しさん
2008/03/21(金) 12:11:13name=range("a1")
if name=textbox1 then
msgbox("有")
end if
このtextbox1の入力 大文字 小文字でも 認識させたいのですが
どう処理したらいいのでしょか?
例えば range("a1")のデータが a0001 textbox1の入力がA0001
この場合もmsgbox(”有”)と拾ってもらいたいのですが・・・
0101デフォルトの名無しさん
2008/03/21(金) 12:14:06なんとなく違う回避方法もある気がするが、
StrConv
で、小文字に統一してから比較する
0102デフォルトの名無しさん
2008/03/21(金) 12:37:55それとも、dim name as StrConv と書くのでしょか?
0103デフォルトの名無しさん
2008/03/21(金) 12:47:160104デフォルトの名無しさん
2008/03/21(金) 13:17:57if name=textbox1 then
→If StrComp(name, textbox1, vbTextCompare) = 0 then
ところで、msgboxの()は必要なの?
0105デフォルトの名無しさん
2008/03/21(金) 13:18:39"textboxは厳密に判定するのか?")
' 実際にtextboxを配置してみての実験はしていない
0106デフォルトの名無しさん
2008/03/21(金) 13:20:41でいいんじゃあるまいか。
0107デフォルトの名無しさん
2008/03/21(金) 14:56:57本当はmsgbox()のところは、分かりやすく質問させてもらうため
簡単に仮に置いただけです。
本当は FOR EACH と組み合わせて、膨大な数あるデーターの中から
対象データを抜き出したいのです。
今のコードは下記の様に書いてるのですが、
Dim name As String
name = textbox1.text
Dim 範囲, 名前
Set 範囲 = Range("a1:z10000")
For Each 名前 In 範囲
If 名前.Value = name Then
名前.Select
end if
全てがそろってないと拾ってくれず、半分手作業状態で困ってました。
一応、上記コードでやって見ましたが、for each とうまくかみ合いません
再び、ご教授お願いします。
0108デフォルトの名無しさん
2008/03/21(金) 15:28:00dim 範囲 as range, 名前 as range
set 範囲 = range("a1:z10000")
set 名前 = 範囲.find(textbox1.text, lookat:=xlwhole)
if not 名前 is nothing then
名前.select
end if
0109デフォルトの名無しさん
2008/03/21(金) 15:57:09もうちょっと、いじくってみます。
0110デフォルトの名無しさん
2008/03/21(金) 16:33:11半角の小文字aと全角の小文字aの違いが有ると拾わないみたいです。
0111デフォルトの名無しさん
2008/03/21(金) 17:18:17StrConv
0112デフォルトの名無しさん
2008/03/21(金) 17:23:520113デフォルトの名無しさん
2008/03/21(金) 18:07:08明示はサ変名詞なので的が付く対象ではない
したがって明示的というのは日本語風の言語使用方法に過ぎない
0114デフォルトの名無しさん
2008/03/21(金) 21:14:50なぜサ変名詞に的がついてはいけないの?
0115デフォルトの名無しさん
2008/03/21(金) 23:06:230116デフォルトの名無しさん
2008/03/21(金) 23:57:020117デフォルトの名無しさん
2008/03/22(土) 00:37:29excelからやると結構面倒
その辺になるとACCESSのほうがいいかも。
ODBC経由でオラクルのテーブルをリンクできるようにしてから、openrecordsetすれば簡単
0118デフォルトの名無しさん
2008/03/22(土) 00:43:430119デフォルトの名無しさん
2008/03/22(土) 12:49:32VBSからでも使える程度のよくあるケース
0120デフォルトの名無しさん
2008/03/22(土) 13:54:200121デフォルトの名無しさん
2008/03/22(土) 14:51:54ただし、はずし方もググればすぐにわかるんだけどね・・・
0122デフォルトの名無しさん
2008/03/22(土) 15:59:13【OS】WinXP Home
【バージョン】Excel2002
質問させて頂きます。
数あるレコードの中から番号を選択して、内容を反映させたデータ閲覧用フォーム2を表示させています。
画面で見るだけではなくそれを印刷に流用できればと考えましたので、用紙サイズをA4・印刷方向を横に設定する以下の記述を追加しました。
Private Sub CommandButton3_Click()
UserForm2.PrintForm
Printer.Orientation = vbPRORLandscape
Printer.PaperSize = vbPRPSA4
End Sub
実行すると印刷はされるものの、A4縦で印刷されてしまいました。
A4横に設定するには、どのように記述すればよろしいのでしょうか?
ご存知の方いらっしゃいましたら、宜しくご教示お願いします。
0123デフォルトの名無しさん
2008/03/22(土) 20:48:45Forms("フォーム名").Printer.Orientation = acPRORLandscape
それかプリンターの設定で縦になってるから云々とか
0124デフォルトの名無しさん
2008/03/23(日) 01:50:42条件分岐でそれぞれの製品(4製品)が5000以上になったらOKになるようにしたいのですが
どう書けばいいのでしょうか?それぞれの時の書き方が分かりません。D4:F7 は範囲です。
宜しくお願いします。
If Range("d4:f7").Value >= 5000 Then
msgbox"ok"
Selection.Value = "ok"
Else
Selection.Value = "no"
0125デフォルトの名無しさん
2008/03/23(日) 02:23:535000以上っていうのはD4:F7全ての合計なのか
1個1個のセルの値が5000以上なのかなど
0126デフォルトの名無しさん
2008/03/23(日) 02:53:391個1個のセルの値が5000以上になるものです。合計は全く関係ありません。
4製品の全ての値が5000(円)以上になっているものに対してOKになるようにしたいのですが。
説明が下手ですみません。
0127デフォルトの名無しさん
2008/03/23(日) 03:05:480128デフォルトの名無しさん
2008/03/23(日) 03:15:070129デフォルトの名無しさん
2008/03/23(日) 03:16:310130デフォルトの名無しさん
2008/03/23(日) 03:53:41'対象のワークシートを変数wkに格納
Set wk = Worksheets("Sheet1")
'対象のワークシートの範囲の開始("C4")から終了("F7")までを変数currentCellにセットしてループ
For Each currentCell In wk.Range("C4:F7")
'対象のセルの値が5000以上だった場合
If currentCell.Value >= 5000 Then
currentCell.Value = "ok"
End If
Next currentCell
0131デフォルトの名無しさん
2008/03/23(日) 04:11:380132デフォルトの名無しさん
2008/03/24(月) 15:54:55以下のようにマクロを使わず、セルに入ってるデータをセルの位置として
指定して計算させたいのですが可能でしょうか?
SUM(A1のデータ:A2のデータ)
例えば、以下のようにデータが入力されているとき、
A1のセルに"B1"
A2のセルに"B10"
マクロを使わずSUM(B1:B10)が行われるようにするにはどうすればよいでしょうか?
0133デフォルトの名無しさん
2008/03/24(月) 16:14:100134デフォルトの名無しさん
2008/03/24(月) 16:20:33おー!ありがとうございます!!
0135デフォルトの名無しさん
2008/03/25(火) 23:10:05そのEcelのオブジェクトのApplicationからメッセージボックスを
表示するようなことはできますか?Excelにマクロを定義しといて
呼び出すという方法じゃなくて、直接メッセージを表示するような
ことがやりたいです。
0136デフォルトの名無しさん
2008/03/26(水) 01:20:080137デフォルトの名無しさん
2008/03/26(水) 01:29:290138デフォルトの名無しさん
2008/03/26(水) 21:19:57VBAの処理のみでAccessに依存することなく、Accessのデータテーブルから
エクセルのシートにデータ内容をExportしたり、エクセルのシートの内容をデータベースに
Importすることはできるのでしょうか?
0139デフォルトの名無しさん
2008/03/26(水) 23:03:13???
0140デフォルトの名無しさん
2008/03/26(水) 23:20:00どのオブジェクトの何というメソッドを使うのか教えていただけないでしょうか。
0141デフォルトの名無しさん
2008/03/26(水) 23:59:32Accessを使ってシートにデータをExportをしますが、Accessは使わずにVBAの
機能のみでシートにデータを取り込みたいです。
0142デフォルトの名無しさん
2008/03/27(木) 00:16:400143デフォルトの名無しさん
2008/03/27(木) 00:39:27WindowsXP Excel2000を使っています。
Excel VBAで、画像ファイル(.jpgとか.tifとか)をビューアなどで開かず、
直接印刷する方法を教えてください。
単純に印刷するだけならシェルを使って何とかなったのですが、
用紙サイズや向きの指定をしたく、その方法がまったくわかりません。
よろしくおねがいします
0144デフォルトの名無しさん
2008/03/27(木) 07:01:01ADOとかDAOを使えばそんな感じの事はできる
インポート/エクスポートとはちょっと違うけど
0145デフォルトの名無しさん
2008/03/27(木) 11:30:02共通で使えるVBAを作ったのでエクセルを開くたびに常にそのVBAを読み込みたいです。
現在は***.vbaファイルを保存しておき、そこからxlaファイルにしてそれをアドオンでエクセル起動時に読ませています。
これだとVBAを修正するときは、
新規でエクセルを立ち上げ
↓
VBEで***.vbaを読み込み
↓
編集後別名のxlaファイルに保存(同一ファイルはエクセル起動時に開かれるのでさわれない為)
↓
エクセルを閉じ、作ったxlaファイルを設定しているxlaファイルに置き換え
と面倒な事になっています。※xlaファイルはダイレクトに編集できないようだ
みなさんは作ったVBAをどのように管理していますか?
0146デフォルトの名無しさん
2008/03/27(木) 13:17:350147デフォルトの名無しさん
2008/03/27(木) 18:33:14Connection情報を指定する際に
Jet OLEDB:Engine Type=?
?に対してはどんな値を指定するのが妥当なんでしょうか?
ちなみに↓を見てたのですが全く意味がわかんなかったんです。。
http://www.microsoft.com/japan/msdn/data/techmat/ado/dao2ado_11.aspx
0148147
2008/03/27(木) 20:55:55OLE DBプロバイダを使用して
あるExcelファイルのシートのデータを
新規シートへコピーするのをやろうとしてます。
0149デフォルトの名無しさん
2008/03/27(木) 21:06:00ADOを調べて
public sub toridasi()
Dim cnn as NEW ADODB.Connection
Dim rs As NEW ADODB.Recordset
set cnn = NEW ADODB.Connnection
cnn.Connection String = _
略
略
cnn.Open
set rs.Open Source = 略
といった感じでやったらできました。
質問なのですが今度はデータベースから取り込むのではなく、
Excelのシートの内容をデータベースに書き込むにはどうしたらいいですか?
0150デフォルトの名無しさん
2008/03/27(木) 22:34:35まあこの辺見るとかググるとかして頑張ってください
ttp://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_130.html
0151デフォルトの名無しさん
2008/03/27(木) 23:00:59文字列の置換処理をしたいのですが
どのように書けばいいのでしょうか?
0152デフォルトの名無しさん
2008/03/27(木) 23:07:350153デフォルトの名無しさん
2008/03/27(木) 23:11:07このサイトは見たことがありますが参考になりませんでした。
0154デフォルトの名無しさん
2008/03/28(金) 00:43:16そこに書いてあることが理解できない段階なら、
まじめにVBAの本を買って、勉強したほうがいいんじゃないかなと思う。
0155デフォルトの名無しさん
2008/03/28(金) 02:24:22DAOで、試験的にやってみました。
あらかじめ、TEST.mdbの中に「受注」テーブルがある場合です。
ワークシート「受注」の4行目から9行目までを新規レコードに追加します。
Sub Data_Export()
Dim WS As Worksheet, r As Long
Dim db As Database, rs As DAO.Recordset
Set WS = Worksheets("受注")
Set db = OpenDatabase(ThisWorkbook.Path & "\TEST.mdb")
Set rs = db.OpenRecordset(Name:="受注", Type:=dbOpenDynaset)
For r = 4 To 9
With rs
.AddNew
.Fields("日付").Value = WS.Cells(r, 2).Value
.Fields("顧客名").Value = WS.Cells(r, 3).Value
.Fields("注文番号").Value = WS.Cells(r, 4).Value
.Fields("品名").Value = WS.Cells(r, 5).Value
.Fields("単価").Value = WS.Cells(r, 6).Value
.Fields("数量").Value = WS.Cells(r, 7).Value
.Update
End With
Next r
db.Close
End Sub
参考になればよいですが。
0156155
2008/03/28(金) 04:48:08Next r の次から
---------------------------
rs.Close: Set rs = Nothing
db.Close: Set db = Nothing
End Sub
---------------------------
0157145
2008/03/28(金) 10:03:57ありがとうございます。
個人用マクロ調べてみました。
これだと下記にファイルを置かれてしまうようなのですが、
管理するマクロファイルは任意の場所に置いて管理したいです。
C:\Program Files\Microsoft Office\Office\XLStart
何か方法はありますでしょうか。
0158デフォルトの名無しさん
2008/03/28(金) 18:33:56俺は
ツールバーにマクロのコマンド作る
0159135
2008/03/28(金) 23:15:330160デフォルトの名無しさん
2008/03/29(土) 00:13:380161デフォルトの名無しさん
2008/03/29(土) 00:25:20何で困ってるのかさっぱりわからん。
0162デフォルトの名無しさん
2008/03/29(土) 01:48:52or 余裕
application.executeexcel4macro "alert(...)"
or さらに余裕
application.executeexcel4macro "call(""user32"",""messagebox"",..."
or さらにさらに余裕
...
0163デフォルトの名無しさん
2008/03/29(土) 12:35:12もっと何をしたいのか具体例を挙げてくれないと
出来るとしか答えられん。
0164デフォルトの名無しさん
2008/03/29(土) 15:01:220165デフォルトの名無しさん
2008/03/29(土) 15:23:42>>140
まあ一応>>162で答え出てんじゃね
0166デフォルトの名無しさん
2008/03/30(日) 19:16:39Excel 97
で、
a1.a2.a3.….an を
an,a1.….a(n-1) と並べ替えるにはどうしたらいいんでしょうか。
a1〜anは英数字、カタカナ、漢字です。
よろしくお願いします
0167デフォルトの名無しさん
2008/03/30(日) 20:05:33an
0168デフォルトの名無しさん
2008/03/30(日) 20:06:16anをa1のセルに移動(insert)するだけでいいんじゃないのか?
ってかXPでなんで97なんだ?
0169デフォルトの名無しさん
2008/03/30(日) 20:06:210170デフォルトの名無しさん
2008/03/30(日) 20:12:140171デフォルトの名無しさん
2008/03/30(日) 20:24:37>>168
一つのセルの中に「.」で区切られた状態で入っているので・・
97なのはwin95のPCで読めるようにしてたのかと。。
>>170
どのようにすればいいんでしょうか
0172デフォルトの名無しさん
2008/03/30(日) 20:26:48それは本当にVBAでやらなきゃならんことなのか?
後ろから「,」を検索してその位置以降の文字列を前に持ってくるだけだろ?
Excelの関数で事足りると思うのだが?
0173デフォルトの名無しさん
2008/03/30(日) 20:29:22並び替え以前は全て「.」で区切られているので・・
またデータが大量にあるためマクロで処理したいです。
0174デフォルトの名無しさん
2008/03/30(日) 23:35:031.関数で別シートに写像
2.シート全体を選択してコピー→値の貼り付け
0175デフォルトの名無しさん
2008/03/30(日) 23:36:48あ.い.う.え.お
と並んでいるものを、
お.あ.い.う.え
と並べたいのか?
お.え.う.い.あ
と並べたいと言う意図だとan,a1.….a(n-1) はおかしいし・・・
意味が分からん。
0176デフォルトの名無しさん
2008/03/30(日) 23:44:36自前でsort関数つくるのがいいだろ
0177デフォルトの名無しさん
2008/03/30(日) 23:46:51俺も意味が判らんかったが、そういう意味で解釈すると、こうかな?
Function test()
Dim LastStr As String
Dim maxy As Long
maxy = 5
LastStr = Range("A" & maxy)
For i = maxy To 2 Step -1
Range("A" & i) = Range("A" & i - 1)
Next
Range("A1") = LastStr
End Function
0178デフォルトの名無しさん
2008/03/30(日) 23:48:43並べ替えたいものは「1つのフィールドに入っている」んじゃないか?
0179デフォルトの名無しさん
2008/03/31(月) 00:01:58そういう意味?
ならこれでどうだ?
Function test()
Dim baseText As String
Dim KekkaText As String
Dim varStr() As Variant
Dim i1 As Long, i2 As Long
Dim maxy As Long
'
baseText = "あいうえお.aiueo.アイウエオ.アイうえオ.aiウエお"
i2 = 0
'
ReDim Preserve varStr(i2) As Variant
For i1 = 1 To Len(baseText)
If Mid(baseText, i1, 1) = "." Then
i2 = i2 + 1
ReDim Preserve varStr(i2) As Variant
Else
varStr(i2) = varStr(i2) & Mid(baseText, i1, 1)
End If
Next
'
KekkaText = varStr(UBound(varStr))
For i1 = 0 To (UBound(varStr) - 1)
KekkaText = KekkaText & "." & varStr(i1)
Next
'
MsgBox (KekkaText)
End Function
0180デフォルトの名無しさん
2008/03/31(月) 00:21:21あとは自作関数化すれば何セルあっても動作するするだろ
それくらいは自分でなんとかすればよし、というところか。
0181166
2008/03/31(月) 00:39:56どうもです
>>175
あ.い.う.え.お
と並んでいるものを、
お,あ.い.う.え
です。 「お」の後がコンマになってます。
>>177-180
ありがとうございます。
おきてからやってみます
0182179
2008/03/31(月) 00:48:02おの後ろはカンマにしたかったのか。
それは実装できてないわ。
まぁ、ドットで区切って、並び替えて、再結合は実現しているので、
あとは別に苦労しないだろ。
0183デフォルトの名無しさん
2008/03/31(月) 01:54:26Dim cell As Range
Dim pos As Long
Dim buf1 As String, buf2 As String
For Each cell In r
pos = InStrRev(cell.Value, ".")
If pos > 0 Then
buf1 = Right$(cell.Value, Len(cell.Value) - pos)
buf2 = Left$(cell.Value, Len(cell.Value) - Len(buf1) - 1)
cell.Value = buf1 & "," & buf2
End If
Next
End Sub
Sub bar()
foo Range("A1:A10")
End Sub
0184デフォルトの名無しさん
2008/03/31(月) 02:09:140186デフォルトの名無しさん
2008/03/31(月) 10:21:31なんだその吐き気がするコードは。
Excel97にはSplitすらないのか?
仮に無いとしても、>>172で十分だろ。
0187デフォルトの名無しさん
2008/03/31(月) 10:23:080188デフォルトの名無しさん
2008/03/31(月) 11:14:2597にはsplitもなければInstrRevもない。
0189デフォルトの名無しさん
2008/03/31(月) 11:22:560190デフォルトの名無しさん
2008/03/31(月) 11:24:40>>187
0191デフォルトの名無しさん
2008/03/31(月) 11:27:350192デフォルトの名無しさん
2008/03/31(月) 11:29:51意味わからん
0193デフォルトの名無しさん
2008/03/31(月) 11:32:300194デフォルトの名無しさん
2008/03/31(月) 11:38:410195デフォルトの名無しさん
2008/03/31(月) 11:42:390196デフォルトの名無しさん
2008/03/31(月) 11:47:25>>34
0198デフォルトの名無しさん
2008/03/31(月) 21:12:140199デフォルトの名無しさん
2008/03/31(月) 22:24:020200デフォルトの名無しさん
2008/04/01(火) 05:44:27なんでこいつこんなにえらそーなんだ
0201デフォルトの名無しさん
2008/04/01(火) 08:34:030202デフォルトの名無しさん
2008/04/01(火) 09:16:55質問者以外全部えらそーに見える俺は文盲
0203デフォルトの名無しさん
2008/04/01(火) 09:51:320204デフォルトの名無しさん
2008/04/01(火) 21:47:10Dim cnn as New ADODB.connection
Dim RS as New ADODB Recoreset
Dim value As Boolean
cnn.connection String = _
"Provaider = micosoft.Jet.DLEDB.4.0;" & _
"Data Source = D:\データ.mdb:"
'**************ダイアログボックス表示
value = Application.Dialogs(xlDialogSaveAs).Show
If value = False Then
Exit Sub
End If
**************
0205デフォルトの名無しさん
2008/04/01(火) 21:57:04cnn.Open
Set RS = New ADODB.Recordset
RS.Open Source := "テーブルデータ" ,ActiveConnection:=cnn, _
Corsor Type := adOpenstatic, Option := adCmdTable
ThisWorkbook.Sheets(1).range("A1").CopyFromRecordset RS
RS.Close
Set.Close
cnn.Close
Set cnn = Nothing
End Sub
質問なのですが、上記を実行するとダイアログボックスが表示されて新規でファイルを
作成して今現在動かしているエクセルブックの名前を変更して保存しているだけになってしまいます。
結局元のブック(マクロ)をコピーしているのと同じです。
私のやりたいことはダイアログボックスを表示させて、新規でブックだけ作成してデータベースのデータ.mdbのテーブルだけを
新規ブックシートに書き込みたいです。どうすればいいでしょか?
0206デフォルトの名無しさん
2008/04/02(水) 03:55:51'---------Sample-----------
Sub Data_Import()
Dim cn As New ADODB.Connection, rs As New ADODB.Recordset
Dim ShinkiFullName As String, ShinkiFile As String
Dim wb As Workbook, ws As Worksheet, c As Integer
Workbooks.Add ' ブックを新規作成
ShinkiFile = ActiveWorkbook.Name '新規ブックの名前を格納�@
'エクセルと同じフォルダにある「TEST.mdb」に接続
cn.ConnectionString = _
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ThisWorkbook.Path & "\TEST.mdb"
cn.Open
'「TEST.mdb」内の「受注」テーブルを参照
rs.Open Source:="受注", ActiveConnection:=cn, CursorType:=adOpenForwardOnly, LockType:=adLockReadOnly
'新規ブックのSheet1にデータを写す
Set wb = Workbooks(ShinkiFile): Set ws = wb.Worksheets("Sheet1")
With ws
For c = 0 To rs.Fields.Count - 1 'フィールド名をA1から横にコピー
.Cells(1, c + 1).value = rs.Fields(c).Name
Next c
.Cells(2, 1).CopyFromRecordset rs 'レコードをA2以降にコピー
End With
'接続終了
rs.Close: Set rs = Nothing
cn.Close: Set cn = Nothing
'***** つづく*****
0207206
2008/04/02(水) 04:25:09Shitei: 'ファイル名を指定/ファイル名が適切なものになるまでダイアログボックスを閉じない�A
Do
ShinkiFullName = Application.GetSaveAsFilename(FileFilter:="Microsoft Excel ブック (*.xls),*.xls", _
Title:="新規データファイル保存")
Loop Until ShinkiFullName <> "False"
On Error GoTo Shitei 'ファイル名が重複した場合
With wb
.SaveAs Filename:=ShinkiFullName
.Close
End With
End Sub
-------Sample おわり----------
○あらかじめブックを作成・レコードを転写した後に、保存する場所・ファイル名を決めるようにしてあります。
(意図されている手順を変更しています。)>�@、�A
○変数にvalueなどの予約語は使わないようにしましょう。
○Application.Dialogs(xlDialogSaveAs).Showでは、ファイル名を取得できません。
GetSaveAsFilenameやGetOpenFilenameの使い方をマスターされるとよいでしょう。
0208デフォルトの名無しさん
2008/04/02(水) 09:35:56なにで実現するのでしょうか。
0209デフォルトの名無しさん
2008/04/02(水) 10:19:580210デフォルトの名無しさん
2008/04/02(水) 12:42:58ボタンのオブジェクト名を変数に格納する方法ってありますかね?
0211デフォルトの名無しさん
2008/04/02(水) 12:43:450212デフォルトの名無しさん
2008/04/02(水) 22:51:53明日に結果を報告します。
0213デフォルトの名無しさん
2008/04/04(金) 13:05:00なんで??
Excel2003
0214デフォルトの名無しさん
2008/04/04(金) 15:59:16MacroOptionsを使えばよい事がわかりましたが、
引数ごとの説明文を設定するのはどうしたら
良いですか?
0215デフォルトの名無しさん
2008/04/04(金) 19:45:26Application.visible = falseで本体を隠したユーザーフォーム上のコマンドボタンを押すと
新しいウィンドウでExcelのファイルを開くようにしたいのですが、どうしたらいいですか。
0216デフォルトの名無しさん
2008/04/04(金) 21:14:380217デフォルトの名無しさん
2008/04/04(金) 23:53:05たぶんマウスのドライバ。MSのIntelliPoint使ってるだろ?俺もなってた。
0218デフォルトの名無しさん
2008/04/05(土) 14:39:37確かにマウス交換した。そういうことかー。サンクス
0219デフォルトの名無しさん
2008/04/05(土) 17:09:010220デフォルトの名無しさん
2008/04/05(土) 19:59:180221デフォルトの名無しさん
2008/04/06(日) 22:54:340222デフォルトの名無しさん
2008/04/07(月) 12:07:05解決したみたいだけど sp3で 普通にできるようになったよ
0223デフォルトの名無しさん
2008/04/07(月) 15:12:34このアドインはバグがあるからダメ
0224デフォルトの名無しさん
2008/04/07(月) 15:29:080225デフォルトの名無しさん
2008/04/07(月) 18:30:21(オートでVBAを記述させたときの『DrawingObjects("グラフ 2")』などの『2』の部分)
は、グラフを作るたびに自動で振られていきますが、
グラフを消去した場合も番号は累計されていってしまいますよね。
いったんグラフを作って消してから、グラフ番号をリセットすることは可能ですか?
(オートで書いた場合に、番号が『1』になるようにしたい。)
グラフ番号をリセットする魔法を教えてください。
WinXP、Excel2003です。
0226デフォルトの名無しさん
2008/04/07(月) 20:56:21やりたい事は変数を用いて、範囲を選択する事です。
range("A1:C3").select のように範囲を選択する際に、変数を用いたく考えております。
dim hoge , piyo
hoge = 1
piyo = 3
cells(hoge,1).select
で単一セルは選択できたのですが、範囲指定が分かりません。
cells(hoge,1) から cells(piyo,3) までを選択する方法を教えて頂けたらば幸いです。
何卒ご指導をよろしくお願いします。
0227デフォルトの名無しさん
2008/04/07(月) 22:33:10Range(Cells(hoge,1), Cells(piyo,3)).Select
たしかRangeとcellsは同シートじゃないとエラー出るのに気をつけてね
0228デフォルトの名無しさん
2008/04/08(火) 01:19:11確かExcel再起動しない限り不可能だったようなことをどこかで読んだ記憶がある。
で、シートの追加・削除を行うマクロを長時間起動したままだとそのうち落ちるとかだったかな?
あいまいでごめん。
0229デフォルトの名無しさん
2008/04/08(火) 12:59:51一つの場合
Sheets("シート1").Range("C1") = Sheets("シート2").Range("D9")
というようにやっているのですが、二つ以上になって
Sheets("入力シート").Range("C1") = Sheets("共通設定シート").Range("D9:E9")
みたいにやると、何も表示されなくなってしまいます。
0230デフォルトの名無しさん
2008/04/08(火) 13:10:14何がしたいのか理解できない
0231デフォルトの名無しさん
2008/04/08(火) 13:25:50下の例間違ってました。訂正。
Sheets("シート1").Range("C1") = Sheets("シート2").Range("D9:E9")
やりたいことは、例をあげると
シート2のD9に「あい」と入っていてE9に「うえお」と入っているとすると
シート1のC1には二つ繋がった結果「あいうえお」と入れたいです。
0232デフォルトの名無しさん
2008/04/08(火) 13:48:32ワークシート関数でいいなら、concatenate
0233デフォルトの名無しさん
2008/04/08(火) 14:08:14ありがとうございます!出来ました!
0234デフォルトの名無しさん
2008/04/08(火) 15:05:42どうすりゃいいのか惜しえてください
0236デフォルトの名無しさん
2008/04/08(火) 23:22:30「sheet2 range("A1") に、オートフィルターがかかっている(又は、オートフィルターモード)なら、
オートフィルターを解除し、
オートフィルターがかかっていないなら、何もしない。」
どう書いたらいいですか?
0237236
2008/04/08(火) 23:24:460238236
2008/04/08(火) 23:48:02Sub filter0()
With Sheet2
If .AutoFilterMode = True Then
.AutoFilterMode = False
End If
End With
End Sub
0239236
2008/04/08(火) 23:48:45Sub filter0()
With Sheet2
If .AutoFilterMode = True Then
.AutoFilterMode = False
End If
End With
End Sub
0240デフォルトの名無しさん
2008/04/09(水) 20:49:49Sub excel_access4()
Dim dbs As New ADODB.Connection 'ADOコネクション
Dim rcs As New ADODB.Recordset 'ADOレコードセット
Dim mydbF As String 'アクセス ファイル
Dim mydbT As String 'アクセス テーブル
Dim mtr As Variant 'エクセル 全データ
Dim rcd As Long 'アクセス 行指定
Dim fld As Long 'アクセス 列指定
'例として acctest2.mdb の テーブル4 に書き込む
mydbF = "acctest2.mdb" 'アクセス ファイル指定
mydbT = "テーブル4" 'アクセス テーブル指定
'アクセスデータベースを指定
dbs.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & ThisWorkbook.Path & _
"\" & mydbF & ";"
'アクセスデータベースを開く
rcs.Open Source:=mydbT, _ 'A
ActiveConnection:=dbs, _ 'B
CursorType:=adOpenKeyset, _ 'C
LockType:=adLockOptimistic, _ 'D
Options:=adCmdTableDirect 'E
0241デフォルトの名無しさん
2008/04/09(水) 20:50:17With Worksheets("Sheet1").Range("A1").CurrentRegion
Let mtr = .Resize(.Rows.Count - 1).Offset(1, 0).Value
For rcd = LBound(mtr, 1) To UBound(mtr, 1) '1次行
rcs.AddNew 'LB:最小値(1) UB:最大値(5)
For fld = LBound(mtr, 2) To UBound(mtr, 2) '2次列
'アクセスに行列で書き込み
Let rcs.Fields(fld - 1).Value = mtr(rcd, fld)
Next
rcs.Update
Next
End With
rcs.Close
dbs.Close
Set rcs = Nothing
Set dbs = Nothing
End Sub
AとBはわかりますが、CDEは一体何をしているのかわかりません。
また実行すると実行時エラー3709がでます。
この実行時エラーの原因がさっぱりわかりません。
どなたか詳しい方お教え願えないないでしょうか?
0242デフォルトの名無しさん
2008/04/10(木) 01:03:15カーソルとロックタイプを指定してるだけでしょ。
SQLでレコード扱う場合の基本だからググると(ry
0243デフォルトの名無しさん
2008/04/10(木) 15:16:58Sheets("Sheet1").Range("B5") = ("日")
Selection.AutoFill Destination:=Range("B5:B35")
上のようにVBAで書いて実行したら、エラー"1004" RangeクラスのAutoFillメソッドが失敗しました。って出るんですがなんででしょ?
Excelのほうでオートフィルしたら普通にB35まで曜日が出るんですが、VBAでやりたいので困ってます。
0244デフォルトの名無しさん
2008/04/10(木) 15:27:390245デフォルトの名無しさん
2008/04/10(木) 15:29:24ありがとございます、できました
0246デフォルトの名無しさん
2008/04/10(木) 15:38:17それがデフォルトでもいい気がする。
0247デフォルトの名無しさん
2008/04/10(木) 15:41:19やってみます、ありがとう!
0248デフォルトの名無しさん
2008/04/10(木) 15:45:53もしあったら、デフォルトはこれがいいな〜
って妄想なので・・・
0249デフォルトの名無しさん
2008/04/10(木) 15:47:20なるほど、そういうことですか
0250デフォルトの名無しさん
2008/04/10(木) 15:52:49WinXP、Excel2007です。
すみません、ヒントだけでもご教授下さい。
データが入ってるシートを選択したときに「sheet3」というシートにアクティブになってるシートのセルの一部をコピーしたいのです。
データが入ってるシートはたくさん増えるので、一個ずつ指定することができません…
手探り手探りつくってみたのがコレです。動きません。
Private Sub Worksheet_Activate()
Range("A3").Copy
ActiveSheet.Paste Destination:=Worksheets("sheet3").Range("D7")
Range("A8").Copy
ActiveSheet.Paste Destination:=Worksheets("sheet3").Range("D4")
Range("B7").Copy
ActiveSheet.Paste Destination:=Worksheets("sheet3").Range("E3")
End Sub
おねがいします
0251デフォルトの名無しさん
2008/04/10(木) 15:54:27フォントの色を変える方法はセルを指定するしかないのでしょうか?
表を作っていてさっき質問したB5~B35に入る曜日の土日だけ赤にしたいと思っています
しかし月によって、どこに土日が入るかわからないのでセル指定ではなくて変数などを指定してやる方法はありますか?
ちなみにSelect文を使って変数の中身を替えています
0252デフォルトの名無しさん
2008/04/10(木) 16:15:12ThisWorkbookのマクロに
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If Sh.Name = "Sheet3" Then Exit Sub
Worksheets("Sheet3").Range("D7").Value = Sh.Range("A3").Value
'以下略
End Sub
0253デフォルトの名無しさん
2008/04/10(木) 16:19:40マクロじゃなくていいなら「条件付書式」。
マクロなら、
for each cell in worksheets("sheet1").range("B5:B35")
if cell.value = "土" or cell.value = "日" then
'interiorがうんたらかんたら
end if
next
0254デフォルトの名無しさん
2008/04/10(木) 16:20:41こればっかりはしょうがないですよね、ありがとうございます!
0255デフォルトの名無しさん
2008/04/10(木) 16:38:20動きました!!ありがとうございます!!
ですが、sheet3をクリックすると、一瞬だけ表示されて消えてしまうのですが…
0256デフォルトの名無しさん
2008/04/10(木) 17:02:21どんな現象か良くわからんけど、"Sheet3"を"sheet3"にすると解決する?
0257デフォルトの名無しさん
2008/04/10(木) 17:39:30そ、それだった!
解決しましたありがとうございます。
本当に助かりました。ご迷惑をおかけしました
0258デフォルトの名無しさん
2008/04/10(木) 22:19:48OS:XPSP2
excel:2003
グーグル先生にお聞きしてみたところ、どうも答えが返ってこないため、こちらに書き込みいたしました。
Excelを利用して、
�@Webの検索フォームにA列に記載された文字列を入力し検索
�A表示されたページの指定したテキストボックスに記載された文字列をB列に貼り付け
を繰り返すマクロを組もうと頑張っているのですが、どうにも�Aが解決できません。
できればお知恵を貸していただけないでしょうか?
宜しくお願いします。
0259デフォルトの名無しさん
2008/04/10(木) 22:53:35どのページか書いたら、答えが返ってくるかもな。
0260デフォルトの名無しさん
2008/04/11(金) 00:05:31こちらもphpで生成されたhtmlのページしか見れないため、htmlのソースからデータを取り出す形でやっているのですが...
文字列の部分だけを改変したhtmlのソースなら見せられると思うのですが、それでは駄目ですか?
0261デフォルトの名無しさん
2008/04/11(金) 00:29:57何が問題なんだ?
0262デフォルトの名無しさん
2008/04/11(金) 00:40:18大事な情報扱ってるなら2chなんか頼るな
プログラム板、プログラマー板、ソフトウェアー板を徘徊して
ネタ探し回ってる奴いてるよ
解答者の振りして「それじゃ答えられない」「もっと具体的に」と
最後はネタパクられちゃうからね
もしくは「それは素人には無理。業者に出す仕事だ。」色んな言葉で揺さぶられるだけ
動的HTMLは俺も扱った
ここの板で聞いたけどいくら質問しても答えなんかない。
それよりファイル操作できる(ファイルの読み書きできる言語)調べろ
2chで調べたらダメだよ
解答者装った変なのが張り付いてるから
図書館やインターネットで調べてネタは誰にも言うな。
ファイルの読み書きだ。
くどい様だけどマジで2chの板は気おつけろよマジレス。
0263デフォルトの名無しさん
2008/04/11(金) 00:59:00ありがとうございます。
他の板だと、色々とあるんですが、初めてヌクモリティを感じました。
お世話様でした。ありがとうございます。
0264デフォルトの名無しさん
2008/04/11(金) 01:08:35そんなコストパフォーマンスが悪いことやってるの、引きこもりくらいだろwww
0265デフォルトの名無しさん
2008/04/11(金) 01:23:150266デフォルトの名無しさん
2008/04/11(金) 01:45:39何を意としているかはわかってるよ
わかった上で「それじゃよくわかんないよ」「もう少し具体的に」
それじゃこれか!
わざとずれた解答のマクロ出してくる
質問者は一気に信用する
質問者が自分で改編できないことは解答者はわかってるw
やがて改めて聞きに来るのはほぼ確実。
あとは「もう少しだから頑張ろう」とか適当に良きアドバイザーを装って
ネタぱくったら、さよならベイビーwww
解答者の計算どおりネタはぱくって答えは出さない
計算どおりにいきそうにないときは多数を装い
マナーだの常識だの礼儀だの罵倒する役柄と
優しさと知識を持ち合わせた解答者が入り混じる
少しくらい教えたところでこんなトコで質問してるレベルの奴に改編なんか無理。
質問者は解答してもらいたいのでペコペコしながら
最後は言われるがままw
偽解答者は初めからわかってるんだよ
とくにファイル操作関係は気をつけたほうがいい
VBAに限らず他の言語もね
0267デフォルトの名無しさん
2008/04/11(金) 01:54:220268デフォルトの名無しさん
2008/04/11(金) 01:55:590269デフォルトの名無しさん
2008/04/11(金) 02:02:190270デフォルトの名無しさん
2008/04/11(金) 02:31:16オレがじゃんじゃん答えてやるから、そのままHTMLをうpれ
0271デフォルトの名無しさん
2008/04/11(金) 02:37:53んじゃタグ抜きマクロでも書いてみ
リンク、object、span ヨロチクビ
それ見てから質問するか考えるわw
0272デフォルトの名無しさん
2008/04/11(金) 02:58:31は、どう見てもパクるに値するネタでない事だけは確かw
0273デフォルトの名無しさん
2008/04/11(金) 03:09:59次のレスでは>phpで生成されたhtml
ピンポ〜ン!99%の確立で当たりましたね
0274デフォルトの名無しさん
2008/04/11(金) 10:58:320276デフォルトの名無しさん
2008/04/11(金) 22:15:070277デフォルトの名無しさん
2008/04/11(金) 23:40:110278デフォルトの名無しさん
2008/04/12(土) 13:44:44バージョン:excel 2002
VBAでのクラスモジュールの使い方がさっぱりわかりません。
コレクションの要素を設定/取得するだけのクラスすら作れません。
どこが間違っているのか&どう直せばいいのか、どなたか!m(_ _)m
'--クラスモジュール----Class1
Private a As Collection
Private Sub Class_Initialize()
Set a = New Collection
End Sub
Public Property Let mAdd(ByVal value As Integer)
a.Add (value)
End Property
Public Property Get mGet()
a.Item (a.Count)
End Property
0279デフォルトの名無しさん
2008/04/12(土) 13:45:27'標準モジュール------
Sub test()
Dim i As Integer
Dim cal As Class1
Set cal = New Class1
'プロパティへの代入
For i = 1 To 3
cal.mAdd (i)
cal.mGet (i)
Next i
End Sub
0280278=279
2008/04/12(土) 14:10:33ものすごく恥ずかしい質問をしてしまいました><
0281デフォルトの名無しさん
2008/04/12(土) 16:53:540282デフォルトの名無しさん
2008/04/12(土) 17:06:140283デフォルトの名無しさん
2008/04/13(日) 20:36:16Selection.ShapeRange.Line.ForeColor.RGB = RGB(255,10,10)
と指定したのですが、
Line.ForeColor.RGBと指定するのは出来るけど良くないとの指摘を受けました。
VBやVBAの常識では、Selection.ShapeRange.Line.ForeColor.SchemeColor = 2
等とするらしいのですが・・・
RGBだとどのような弊害があるのでしょうか?
常識的な事を質問してすみません。
どなたかご教えて頂けませんか?(>_<)
0284デフォルトの名無しさん
2008/04/14(月) 00:06:120285デフォルトの名無しさん
2008/04/14(月) 00:25:53ご指摘頂いたかたに何度か理由をお聞きしましたが、
常識なんだから当たり前と明確な裏付けを貰えなくて、
それで知人や本、ネットで調べても分からずじまいで、
ご質問させて頂きました(>_<)
0286デフォルトの名無しさん
2008/04/14(月) 03:22:550287デフォルトの名無しさん
2008/04/14(月) 03:29:49たぶんあれだろ。RGB値だと何の色を指定してるかわからりずらいからだろ。
っつってもどっちもマジックナンバー状態だから(ry
っつーかつい最近はじめてVBAさわった俺からすると
コンパイラの方でこういう色の値は予約語としてもっとけと思ったな
0288デフォルトの名無しさん
2008/04/14(月) 03:56:11なんだこいつ
0289デフォルトの名無しさん
2008/04/14(月) 07:31:440290デフォルトの名無しさん
2008/04/14(月) 20:01:59全然俺の言いたいことを理解してないな。
さすがVBAしかさわったことのないゴミどもだwwwwwwwww
ちょろっと触った感じ、他のコンパイラと比べて
半端なく使いづらいからVBAそのものが昔から進化してねぇんだろうな。
まぁお前等のレベルもそこで停滞してるのもしゃあねぇわなwwww
0291デフォルトの名無しさん
2008/04/14(月) 20:58:09VBAは全く初めてですが,C,fortranならそこそこ使えます.
よろしくお願いします.
0292デフォルトの名無しさん
2008/04/14(月) 21:43:080293デフォルトの名無しさん
2008/04/14(月) 21:49:000294デフォルトの名無しさん
2008/04/14(月) 22:29:420295デフォルトの名無しさん
2008/04/14(月) 23:08:49ThisWorkbook.close savechange=false
でExcelを終了させているのですが、
5回に1回くらいプロセスが残ることがあります。
GUIは消えてるのですが・・
Excel2003です。
0296デフォルトの名無しさん
2008/04/14(月) 23:20:380297デフォルトの名無しさん
2008/04/14(月) 23:28:10特に無いと思います・・
DBとか使って無いし
ファイル出力はそのたびクローズしてるんで。
そもそも、リソース未開放だとプロセス残るんですか?
0298283
2008/04/15(火) 00:27:43(NG)…RGBプロパティ使用
Selection.ShapeRange.Line.ForeColor.RGB = RGB(255,10,10)
(GOOD)…SchemeColorプロパティ使用
Selection.ShapeRange.Line.ForeColor.SchemeColor = 2
右辺のマジックナンバーには目をつぶってもらって、
RGBとSchemeColorプロパティの観点で見て欲しいです。
今の時点で常識と言う言葉が出てきていない時点で
VBA使用者の常識では無さそうですね。
0299デフォルトの名無しさん
2008/04/15(火) 00:39:13Excelのオペレーションで考えると、自由に色を使うと言う感じではなく規定の色から選択して使うイメージだよね。
その色がSchemeColorなんだから、VBAをExcelのオペレーションの延長と捉えるならその方がいいということなんでは?
0300デフォルトの名無しさん
2008/04/15(火) 00:40:43俺もそうだと思う
0301283
2008/04/15(火) 00:59:05>>300
返答ありがとうございます。
>Excelのオペレーションで考えると、自由に色を使うと言う感じではなく規定の色から選択して使うイメージだよね。
規定色で書かれた図形とは、違う色としたい要件でしたので、
規定色は使わずに赤=0〜255, 青=0〜255, 緑=0〜255を自由に選ぶようにしていました。
色の自由度が求められる要件で、あえて色の制約があるSchemeColorの方が良いのかが分からないのです(>_<)
0302デフォルトの名無しさん
2008/04/15(火) 01:07:56その用件を知らないんじゃなく?
知ってたらあり得ないだろ
0303デフォルトの名無しさん
2008/04/15(火) 01:16:14おまいにひとつ教えてやろう
Excelでは、「赤=0〜255, 青=0〜255, 緑=0〜255を自由に選ぶ」
ってのは無意味
Excelで表現できるのは、パレットに登録されてる56色のみ
「赤=0〜255, 青=0〜255, 緑=0〜255を自由に選ぶ」をしたところで、
56色の中から一番近い色が選ばれるだけだよ
0304283
2008/04/15(火) 01:16:59もちろん、そのご指摘したかたは要件を知っています。
VB/VBAの使用者なら誰もが知っている常識と言われて
しまったので私がただ単に無知なだけと思っていましたが、
やはり302さんが仰るとおり、有り得ないことみたいですね。
0305283
2008/04/15(火) 02:52:06それはセル等に適用されると言うのは当然その通りだと思います。
今回の対象のシェイプにもは適用されないのでは無いでしょうか?
実際に試してみると分かると思いますが、少しずつ値を変えて、
並べて表示していくと、56色以上同時に表示出来ますから。
0306303
2008/04/15(火) 05:05:36すまん、完全に俺の早とちりだった
Dim i As Long
For i = 0 To 255
With Cells(i + 1, 2)
With ActiveSheet.Shapes.AddShape(msoShapeRectangle, .Left, .Top, .Width, .Height)
.Fill.ForeColor.RGB = RGB(i, 0, 0)
Cells(i + 1, 1).Value = .Fill.ForeColor.RGB
End With
End With
Next i
図形は好きな色使えるな
SchemeColorの色数も81色だし(重複はあるが)
結論として、指摘した人が俺と同じ早とちり OR 知ったか OR 低脳って事で、
俺はおまいが正しいと思うよ
0307デフォルトの名無しさん
2008/04/15(火) 05:27:02>>305じゃないけど
あんた漢だよ
0308デフォルトの名無しさん
2008/04/15(火) 19:46:38(;´Д`)何この要件・・・
「ある規定色で描かれた図形とは別の色を使う」って意味じゃねぇのか?www
Excelで規定された色と違う色を使うことになんの意味がるんだと小一時間(ry
要件も理解する側がアホだったらとんでもない意味に変化するからな。
まず常識的に考えて(ry
0309デフォルトの名無しさん
2008/04/15(火) 21:50:250310デフォルトの名無しさん
2008/04/15(火) 22:17:580311デフォルトの名無しさん
2008/04/15(火) 23:57:19そいや、昔のverで、色の指定でRGB値だとうまく行かなくて
あれれーと思っていろいろ実験したなぁ。
確かに出来るやつと出来ないやつがあって、調べたけど、結局
>>303
と同じ考えに至って自分を納得させたことがありました。
0312デフォルトの名無しさん
2008/04/16(水) 00:02:450313283
2008/04/16(水) 01:14:55>>306
ひとまず303のさんのおかげで、VBAの図形に関しては、制約が無い事が実証されました。
この質問スレ見てる人達の共通認識になったと思うので、これで良かったと思いますよ。
ありがとうございました。
0314デフォルトの名無しさん
2008/04/16(水) 01:20:12一番先頭のセルから終端までを選択する方法ってありますか?
A列の途中から文書の中身が始まります。
開始の行数は変動します。
開始から終了まで、50行×20行ほどです。
文書の開始は必ず同じ内容のValueのセルです。
For文で開始のセルのValueを検索し、Thenで結ぶ、ぐらいまでは考えたんですが
そこから先がまったく予想もつきません。
もしも一番先頭の(文字の入っている)セルより前の空白の行を
すべて消去するうまいやり方があったら教えてください。
空白の行さえ消せれば文書の中身のセル番地が固定されるので、
(テンプレートが決まっていて、いつも全く同じ順番に並びます)
番地を指定してデータを他シートにコピー&ペーストできます。
イメージ図
A列 B列 C列
1行 空白 空白 空白
2行 空白 空白 空白
・
・
・
n行 aaa bbb ccc
A列をaaaで検索
aaaのRange(A,n)のnを取得
1からn-1行を削除
どうかよろしくお願いします。
0315303
2008/04/16(水) 01:32:45Range("A1").Resize(Range("A1").End(xlDown).Row - 1).EntireRow.Delete
0317デフォルトの名無しさん
2008/04/16(水) 09:09:35VBAを使うのは
地獄に落ちる
最適手段
アクセスで
VBAを使うのは
神の身許に
至る近道
0318デフォルトの名無しさん
2008/04/16(水) 13:46:420319デフォルトの名無しさん
2008/04/16(水) 14:04:260320デフォルトの名無しさん
2008/04/16(水) 17:52:39君のアタマの柔軟性次第。
0321デフォルトの名無しさん
2008/04/16(水) 19:03:22アクセスは未来のエクセル也
地獄と極楽を永劫回帰
0322デフォルトの名無しさん
2008/04/19(土) 00:24:35何に使うのかよく分からない
アクセスだとできるけどEXCEL+VBAだとできないことって何?
楽で見栄えが良くなるってだけなのかな?
EXCELVBAはそこそこ使えるようになったが
アクセスを勉強するか、エクセルをさらに研鑽するか迷う
0323デフォルトの名無しさん
2008/04/19(土) 01:30:45C++などからもデータベースにアクセスできるとかじゃね?
そりゃ、C++でもExcelはいじれるけど・・・
0324デフォルトの名無しさん
2008/04/19(土) 06:14:05Excelも便利だがAccessもいいぞ。
業務アプリのGUIも作れるし、百万件ぐらいのデータ処理とかも可能。
RDB+VBA+レポート。
何でも出来てしまうので、何でもやりすぎてしまう。
そんなツール。
0325デフォルトの名無しさん
2008/04/19(土) 06:55:20そこに待っている世界は....
0326デフォルトの名無しさん
2008/04/19(土) 06:57:49エクセルを研鑽するにしてもアクセスのようなデータベースを知ってからのほうがいいです。
エクセルしか知らないと斜め上のテクニックばかりに身に付いちゃうかもね。
0327デフォルトの名無しさん
2008/04/19(土) 07:29:25串刺し演算
セルの結合
複雑な集計はVBAで
報告書、仕様書、企画書その他何でもEXCELで
0328デフォルトの名無しさん
2008/04/19(土) 08:29:18例えばファミレスの注文データベースを作るとします。
一回の注文には複数の料理が含まれるとして
注文件数の合計
料理別の数量合計
を計算したい時、あなたならどんな表を作って集計しますか?
0329デフォルトの名無しさん
2008/04/19(土) 10:25:45お前がAccessで作ろうと思ってる表と同じもの
0330デフォルトの名無しさん
2008/04/19(土) 10:41:03Accessのデータ構造は単純に日付/客ID/料理ID/点数
で決まり。必要に応じてSQLで集計する。
0331デフォルトの名無しさん
2008/04/19(土) 10:55:250332デフォルトの名無しさん
2008/04/19(土) 11:24:43高いスキルってwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
0333デフォルトの名無しさん
2008/04/19(土) 12:28:23中間集計取りながらリアルタイムで全体見ながら
データ入力出来るから集計は早い。
だが、どんどんデータが入ってくるよう
な対象には弱い。量が増えてくると
ニーズも増えて、細かい集計項目追加の嵐
魑魅魍魎になって作成者も理解できなくなる
こういった対象にはDBのほうがまだ強い
ってか、こういったニーズを解決する為に
DBが作られた(とも言える)
0334デフォルトの名無しさん
2008/04/19(土) 14:30:27素人レベルならエクセルで十分だと思うよ
>>323
ほとんど関係ないよ
>>333
大筋は合ってるけどDBってのは戦後からある概念だよ。
DB→Accessの意味で言ってるのかな?
0335デフォルトの名無しさん
2008/04/19(土) 16:21:450336デフォルトの名無しさん
2008/04/19(土) 16:23:150337328
2008/04/19(土) 17:18:29客IDだとお客さんをIDで区別してそうな印象を与えそうなんで注文IDと呼びかえますね。
さらに何番の席で受注したか、その席は禁煙席か喫煙席かも記録しましょうか。
日付/注文ID/席番号/喫煙区分/料理ID/点数/
0338328
2008/04/19(土) 17:33:28Excelだとこの場合、席番号と喫煙区分を何行も書きかえないといけません。
この時、席番号だけ直して喫煙区分を直し忘れたりしないように気を付ける必要もあります。
0339デフォルトの名無しさん
2008/04/19(土) 17:43:110340デフォルトの名無しさん
2008/04/19(土) 17:59:150342デフォルトの名無しさん
2008/04/19(土) 18:21:09Accessは縦展開でデータを追加してかいて、用途に応じて必要な表に組み合わせる。
0343デフォルトの名無しさん
2008/04/19(土) 19:58:47どの座席が喫煙/禁煙なのかなんて予約データに関係ないんだから別の場所にあればいいじゃん。
「Aさんは24番の禁煙席を予約している」じゃなくて「Aさんは24番を予約している」「24番は禁煙席である」だろ?
データ構造(設計)にExcelやAccessが関係してくるのか?
0344328
2008/04/19(土) 20:59:31正規化のことを言っているのですね。
おっしゃる通り、喫煙区分は席番号に従属しています。従属の解消はExcelでも簡単です。VLOOKUPを使えばいいのです。
Excelが苦手なのは注文と料理のような一対多の関係を扱うことです。
0345デフォルトの名無しさん
2008/04/20(日) 01:23:54VBAで条件増やしたLOOKUP亜種を作成しても良いけど、自分だったら素直にSQLを
書くほうを選ぶ
0346デフォルトの名無しさん
2008/04/20(日) 15:29:490347デフォルトの名無しさん
2008/04/20(日) 15:30:500348346
2008/04/20(日) 19:04:54人に聞くってのは、勇気がいるもんなんだぜ。こんな質問のために荒れるのはいやだろ?さぁ教えてくれ。
0349デフォルトの名無しさん
2008/04/20(日) 19:10:220350デフォルトの名無しさん
2008/04/20(日) 19:11:14できるか?に対してちゃんと「できる」って言ってくれたんだから
贅沢言うなよ
0351デフォルトの名無しさん
2008/04/20(日) 20:11:10荒れるのは嫌だが、お前に教えるのはもっと嫌だ。
0352デフォルトの名無しさん
2008/04/20(日) 20:29:040353デフォルトの名無しさん
2008/04/20(日) 20:43:40別のシートにコピーするにはどうしたらいいですか?
シート名はプログラム内に書き込まれてあって、
もしコピー先のシートがなければ、新規にシートをつくりたいのです。
0354デフォルトの名無しさん
2008/04/20(日) 20:53:22その操作をキーボードマクロで捕捉してみたら?
0355デフォルトの名無しさん
2008/04/20(日) 22:52:39頭良いですね。
ありがとう。
0356デフォルトの名無しさん
2008/04/21(月) 18:45:55普通。俺は何もプログラミング言語分からず、VBAに挑戦した。独学で色々して、悩んでもがいて、なんとかクラスモジュールを使えるくらいまでになった。
まずはすぐ聞かずに、マクロ記録とかぐらい試せ。
0357デフォルトの名無しさん
2008/04/21(月) 20:01:01クラスモジュールを使うとどんなことが実現できるの?
0358デフォルトの名無しさん
2008/04/21(月) 20:35:56まさにそこで今ハマってます。
Excel2007みたいな感じで、ステータスバーに「合計」と「データの個数」が
常に両方とも表示されていたら便利だなぁ、と思ってこんなマクロを書いてみました。
------------------------------------------------------------------------
Sub Worksheet_SelectionChange(ByVal Target As Range)
  'ステータスバーに「合計」と「データの個数」を二つとも表示
  Application.StatusBar = " 合計=" & WorksheetFunction.Subtotal(9, Target) & _
              " データの個数=" & WorksheetFunction.Subtotal(3, Target)
End Sub
------------------------------------------------------------------------
これを、PERSONAL.XLSに書けば動くかなー、と思って気軽にやり始めたのですが、
甘くなかったです・・・。
いろいろググったり、詳しい人に聞いてみたりしたら、どうもクラスなるものを
使わないと解決しなさそうな感じなんで、今必死こいてクラスの勉強しとります。
0359デフォルトの名無しさん
2008/04/21(月) 20:59:45根本理解してないというか理解しようとしていないwwww
動けばいいやーっていうスタンスでやってきたからそうなる
0360デフォルトの名無しさん
2008/04/21(月) 21:33:20やっぱそうかー。なんか「VBA使い」に恥をかかせたようでスマン…。
たぶん、俺がひどいだけだと思うんだ。
0361デフォルトの名無しさん
2008/04/22(火) 04:05:16準々マスター文書として使えるのがVBA/OLE多用文書
半端に使ってるものは信頼性が一番低く、生ゴミ文書
扱いになる。
0362デフォルトの名無しさん
2008/04/22(火) 10:01:48メッセージボックスやユーザホームで
"処理中です・・・・ " & Count & "行"
と表示させながら裏で実行させる方法ってありますか?
例えばMsgBoxとかで表示させると、そこで止まってしまうんですが・・・
0363デフォルトの名無しさん
2008/04/22(火) 12:51:57ExcelアプリとExcelデータは区別したほうがいいってことね。
0364デフォルトの名無しさん
2008/04/22(火) 13:39:50msagent
0365デフォルトの名無しさん
2008/04/22(火) 14:07:460366デフォルトの名無しさん
2008/04/22(火) 14:44:10ありがとうございます、やはりこの手の処理方法は
VBAのみで実現するわけじゃないんですね
ちょっと面白そうなので、VBS使ってその方向で検討してみようと思います
0367デフォルトの名無しさん
2008/04/22(火) 14:46:54参照設定にあるはずだ。
0368デフォルトの名無しさん
2008/04/22(火) 15:51:550369デフォルトの名無しさん
2008/04/22(火) 16:06:57今は
On Error Resume Next 'エラー出力を停止する
lng = UBound(arr, 2)
lngErr = Err.Number
On Error GoTo 0 'エラー出力を再開する
のようにUBound()関数を使用してエラー発生の有無で判定してるのですが
他に良い方法ないでしょうか。。
0370デフォルトの名無しさん
2008/04/22(火) 18:07:20エラーを意図的に起こして別の情報を得るコードは
Acess−VBAなど、DBという会社システムでは泣く子も黙る世界と因縁の深い汎用機大型機の
コードでは常套手段。
やはり一般的にはしないほうがいい。
特にAccessなどDBが絡むシステムでは、VBA使うだけでも領域侵犯とみなされやすい
ので注意。
0371デフォルトの名無しさん
2008/04/22(火) 19:37:09初心者の俺が解答するから間違ってたらごめんよ。
例えば、50件のデータを処理する場合はカウンタ変数を作っておいて、1件の処理終わる度にそれに1ずつ足していけばいいと思うよ。そして、「処理件数/全件数」をユーザーフォームに貼りつけたラベルに表示するのを繰り返す。
マスターの皆さん見当違いだったらご指摘をお願いします。
0372デフォルトの名無しさん
2008/04/22(火) 19:43:05忘れてた。
裏で処理するなら「Application.ScreenUpdating」を使って画面更新止めたり、EXCELを非表示にした方がスマートかな。
0373デフォルトの名無しさん
2008/04/22(火) 19:58:37作り捨てアプリ作成言語として割り切って使った方が前向きかも
0374デフォルトの名無しさん
2008/04/22(火) 22:25:260375デフォルトの名無しさん
2008/04/22(火) 23:05:11kwsk
0376デフォルトの名無しさん
2008/04/23(水) 00:29:53きままにセル結合したり、色に意味持たしたり、2行結合のセルと2行間に罫線が無いセルに
それぞれ意味があったり、その行数が20行位まで別条件だったり、もう気が狂いそうです。
これをコンバートする為にまず整形しなければならず、1万行近い定期案件なのです。
凝った事をやるつもりはさらさらないが仕事だから仕方ないのです
0377デフォルトの名無しさん
2008/04/23(水) 01:19:56SDKに配列の要素があるかどうかの判定をするAPIがあったはず
名前忘れたけど
0378デフォルトの名無しさん
2008/04/23(水) 09:01:12配列の次数やレンジを引き数に積んで貰わないの?
0379デフォルトの名無しさん
2008/04/23(水) 09:12:150380デフォルトの名無しさん
2008/04/23(水) 09:20:37工数出せばいいだろうに。
・お前のウンコシート使って無理矢理自動化すると1人月
・俺様が作ったスマートな表を使って自動化すれば0.5人月
両案出して上司に決済させろ。
0381デフォルトの名無しさん
2008/04/23(水) 15:14:590.5賢人月
0382デフォルトの名無しさん
2008/04/23(水) 23:59:01拡張子をxlsからxlt(テンプレート)に変えた場合、保存されていない
状態でOpenしますので、xltファイルの存在Pathが取得できません。
元となった、xltファイルの存在場所のPathを知る方法は無いでしょうか?
Googleでは、「ファイル→開く」だとPathは取得できるが、xltファイルを
ダブルクリックで開いた場合は裏技的なコードを書かないとダメと書いてあり
その人はそのコードを無くしてしまったとあったのですが…
http://www.keep-on.com/excelyou/2001lng4/200110/01100516.txt
0383ゆうすず
2008/04/24(木) 13:05:32エクセル2003、ウィンドウズXPを使用しています。
マクロの記述は本で調べるなどして奮闘中ですが、
調べてもわららないことがあったので書き込みさせていただきます。
家のパソコンだと、なぜか[ツール]→[マクロ]とすすんで、
本来だったら[マクロの記録]となるのでしょうが、
ここが白抜きで実行できません。
セキュリティも下げてみたりしたのですが、どうにもわからなくて…。
なんだか初歩どころか一歩も進んでいないような質問で、大変恐縮なのですが、
どなたか教えていただけると助かります。
よろしくお願い致します。
ゆうすず
0384デフォルトの名無しさん
2008/04/24(木) 13:08:08どうも関数内の「"」がVBAの中での「"」と混同されているらしく、
うまく回避できません。いっそ「0」に置き換えてもいいのですが・・
Sub Finding_Nimo()
Range("A41").Formula = _
"=IF(ISERROR(VLOOKUP(B1,$DC$2:$DD$48,2,FALSE)=TRUE),"",(VLOOKUP(B1,$DC$2:$DD$48,2,FALSE)))"
End Sub
いい解決法は無いでしょうか?
0385デフォルトの名無しさん
2008/04/24(木) 13:12:04セルがダブルクリックされた状態になっているのでは?
他のセルを選択しなおせばOKのはず
0386デフォルトの名無しさん
2008/04/24(木) 13:20:00この場合は、「""」は「""""」と記述すれば上手くいくと思うよ。
0387デフォルトの名無しさん
2008/04/24(木) 14:39:11おお、上手くいきました。ありがとうございます!
0388デフォルトの名無しさん
2008/04/24(木) 21:24:09共有フォルダにあるファイルを開きたいのですが、
どのように書けば共有フォルダを指し示すのでしょうか?
例えばCドラにあるファイルなら「C:\ファイル名」
と書きますよね。
0389デフォルトの名無しさん
2008/04/24(木) 21:33:030390デフォルトの名無しさん
2008/04/24(木) 21:41:21詳しくはWindows板で聞く事
スレ違いというか板違い。
板違いの質問への回答はご遠慮下さい。
0391デフォルトの名無しさん
2008/04/24(木) 21:43:26了簡が狭いとはこの事を言うんだね。
0392389
2008/04/24(木) 21:47:130393デフォルトの名無しさん
2008/04/24(木) 21:58:49知らんけど
0394デフォルトの名無しさん
2008/04/24(木) 23:49:51>>388はEXCELでVBAを使用して開く場合はどうしたらいいのか聞きたいんだと思う。
0395388
2008/04/25(金) 01:05:42VBAで共有フォルダのファイルを開くコードを
書こうと思ったのですが、どう書けばいいのか
わからず困っていました。
適当にググったのですが答えは見つかりませんでした。
0396デフォルトの名無しさん
2008/04/25(金) 01:14:29で答えはわかったの?
共有フォルダー
コンピュータ名=EXCELの
共有ディレクトリVBAの
サブフォルダーXLSの
ブックtest.xlsを開くコードは?
0397デフォルトの名無しさん
2008/04/25(金) 12:44:00EXCELのセル上で計算したものと、VBA上で計算したものと
では結果が微妙に違います。
何故でしょうか?
0398346
2008/04/25(金) 13:48:29VBAの力を駆使して文字の下に網かけれるようにできないですか?
0399デフォルトの名無しさん
2008/04/26(土) 01:07:28あくまで人間が操作してできることしかできないよ、それ以上でもそれ以下でもない。
0400デフォルトの名無しさん
2008/04/26(土) 01:54:200401デフォルトの名無しさん
2008/04/26(土) 14:29:11やさしくわかるExcel関数・マクロ 改訂版
を買おうと思うんだけどどう?
0402デフォルトの名無しさん
2008/04/27(日) 10:03:45怪獣図鑑みたいなものだと思って買う
コンビニで売ってるくらいのもので、実にコンビニエンス!
な本。ただし内容は覚えないほうがいいよ。
0403デフォルトの名無しさん
2008/04/27(日) 10:35:50じゃあおすすめ教えて下せえ
皆さんはどうやって覚えたの?_実習あるのみ?
0404デフォルトの名無しさん
2008/04/27(日) 13:25:29俺はインプレスのできる大事典で覚えた。
0405デフォルトの名無しさん
2008/04/27(日) 14:22:00おまえは俺か
俺もそれで覚えた。カラフルで見やすくおすすめ。取り組みやすい。
0406デフォルトの名無しさん
2008/04/27(日) 15:24:05ドラえもんのポケットの中の道具辞典だろ? マクロや関数は。
ドラえもんの道具辞典みたいなもんだよ。エクセル便利マクロ集ってのは。
(ちょっと使いすぎたり適用範囲間違えるとのび太みたいに災難に合う)
VBAがウルトラマンに出てくる怪獣みたいなもの。
0407デフォルトの名無しさん
2008/04/27(日) 17:32:05しっかり学ぶ! Excel VBA 短期集中講座 [VBAマクロ基礎] 編
がいーよ。
0408デフォルトの名無しさん
2008/04/28(月) 11:34:36Application.ScreenupdatingをFALSEにすると、なぜか(?)一行ごとに
画面の更新が行われ、非常にもたつきます。
これは、2003のみの仕様なのでしょうか。
あるいはサービスパック適用で改善されたりしますか。
よろしくお願いいたします。
0409デフォルトの名無しさん
2008/04/28(月) 12:36:50ただし、非常にもたつくという症状はありませんでした
いずれにしてもSP3は適用しておいた方がいいと思いますよ
0410408
2008/04/28(月) 12:46:17ありがとうございます.
ただ、不思議なことにUpdating = TRUEの記述が入っていると、
はやく実行されるんですよ。ちょうど意味が逆転する感じで・・。
0411デフォルトの名無しさん
2008/04/28(月) 13:16:360412デフォルトの名無しさん
2008/04/28(月) 13:30:05どのようにしたら良いでしょうか。
例:print "(tab)Hello"
(tab)の箇所にタブを入れたいと思います。
もしくは、正規表現を用いずに出力する方法はあるのでしょうか。
0413デフォルトの名無しさん
2008/04/28(月) 13:35:33vbTab
0414デフォルトの名無しさん
2008/04/28(月) 13:40:280415デフォルトの名無しさん
2008/04/28(月) 14:19:08配列のソートが出来ないのは不便。
シートに数字を広げて、昇順かけるしかないでしょ
0416デフォルトの名無しさん
2008/04/28(月) 14:26:05if(A(1)<A(2)AND(A(2)<A(3))AND(A(3)<A(4))then
return
end if
if( (A(2)<A(1))AND(A(1)<A(3))AND(A(3)<A(4))then
A(1)=A(2)
A(2)=A(1)
end if
あと14個似た構文が続く
End Sub
以前、会社のシートにこれがあった。
バグが出る度に書き直していった苦労の跡がにじんでた。
なんだかんだいって、結構偉大なコードだと思った。
0418デフォルトの名無しさん
2008/04/28(月) 15:15:490419デフォルトの名無しさん
2008/04/28(月) 19:25:51笑えるなあ。
0420デフォルトの名無しさん
2008/04/28(月) 19:32:36A(1)=A(2)
A(2)=A(1)
この時点で両方A(2)
0421デフォルトの名無しさん
2008/04/28(月) 21:39:550422デフォルトの名無しさん
2008/04/28(月) 23:03:39ttp://officetanaka.net/excel/vba/tips/tips98.htm
0423デフォルトの名無しさん
2008/04/29(火) 02:16:06配列のソートならググればサンプルがゴロゴロ転がってると思うが。
>>422
えれー遅いな。
つかえねー。
0424デフォルトの名無しさん
2008/04/29(火) 09:58:17自前で作れば数倍早いが、こんだけ楽さしてもらってこのスピードなら十分使えるだろ
'Common Language Runtime Library を参照設定
Const NUM_MAX As Long = 65536
Dim DataList As mscorlib.ArrayList
Dim i As Long
Set DataList = New mscorlib.ArrayList
For i = 1 To NUM_MAX
DataList.Add Int(Rnd() * NUM_MAX)
Next i
Range("A1").Resize(NUM_MAX).Value = _
Application.Transpose(DataList.ToArray)
DataList.Sort
Range("B1").Resize(NUM_MAX).Value = _
Application.Transpose(DataList.ToArray)
DataList.Reverse
Range("C1").Resize(NUM_MAX).Value = _
Application.Transpose(DataList.ToArray)
Set DataList = Nothing
0425デフォルトの名無しさん
2008/04/29(火) 14:52:25やっぱVBAスレって感じでいいね(ゲラプwww
0426デフォルトの名無しさん
2008/04/29(火) 15:04:170427デフォルトの名無しさん
2008/04/29(火) 15:17:03こんな口ばっかりのヤツに限っていまだにVB6あたり使ってそうw
0428デフォルトの名無しさん
2008/04/29(火) 15:25:14業務アプリのGUIはアレで十分なんだがな
0429デフォルトの名無しさん
2008/04/29(火) 16:28:29自問するべきだ。どこで間違えた?
0430デフォルトの名無しさん
2008/04/29(火) 18:40:42故に車輪の再発明ばっかやるハメになる
0431デフォルトの名無しさん
2008/04/29(火) 23:33:150432デフォルトの名無しさん
2008/04/30(水) 09:35:33昇順後→再格納の手法が忘れられてないかい
0433デフォルトの名無しさん
2008/04/30(水) 09:52:52オートフィルターのこと?
0434デフォルトの名無しさん
2008/04/30(水) 10:06:36orz
0435デフォルトの名無しさん
2008/04/30(水) 10:12:30質問者はそれを求めてるように思える
そもそも配列でもなく、再格納の必要もなさそうな気がする
>>424
これは便利
勉強になりました
0436デフォルトの名無しさん
2008/04/30(水) 10:13:09A
↓
Z
このボタンを押すマクロ記録を何度やったことか。
しかも、ラベル行がないと、滅茶苦茶になるし。
0437デフォルトの名無しさん
2008/04/30(水) 10:35:45それは使い方が悪い。
0438デフォルトの名無しさん
2008/04/30(水) 11:06:26参照設定したらDataList.とピリオド打てばインテリセンスが効きそうなもんだが、効かないね。
SortやReverseやToArrayの他にどういうメソッドやプロパティがあるかおせーて。
オブジェクトブラウザでも出てこねー。
0439デフォルトの名無しさん
2008/04/30(水) 11:21:39外部プログラムでソートした別のCSV作って読み込む。これを元の場所に再格納
(このマクロもVBAで作ってすぐ捨てる)
外部プログラムは当然VB. VBS on WSHという手段もあるが、これは手軽だがそれほど
早くはない。
.NET FrameWork(MS無償提供)入れたWindowsならVBコンパイラ付いてるぞ。
インテリセンスとかそういう高機能なIDEじゃないとプログラム開発出来ないという
のであればVB 2008なりなんなりGetしてInstall)
CSV読み込んで配列に格納して、それをソートする処理はまぁちょっと勉強しなきゃ
辛いだろうな
兎に角Excelシートに見苦しい、一度しか使わないようなVBAコードは残さないこと
が精神衛生上好ましい。
0440デフォルトの名無しさん
2008/04/30(水) 11:39:39シートから不要不急のVBAコードは削除することは同意
誤動作された場合の被害が大きい。
ただそういった使用済みのコードは完全に捨ててしまうのも
やはり問題。別の理由で、データ破損してしまい作り直さな
ければならない場合とか、大騒ぎになるな。
テキストファイルに落としてオブジェクトとして
埋め込んでおくのがいいと思う。
0441デフォルトの名無しさん
2008/04/30(水) 12:22:20何番へのレスなの?
0442デフォルトの名無しさん
2008/04/30(水) 13:31:27それコード書く意味あんの?
0443デフォルトの名無しさん
2008/04/30(水) 14:13:23ちょっと複雑な比較順序でソートしなければならない場合とかだと
(ex 国語の点数が同じなら、数学と理科の重み4:3の平均で比較し、
それも同じなら、歴史と社会の重み2:3の平均で比較し )
やっぱりVBAコードに頼らざるを得ないよ。
手動操作で出来る場合も多いけど、ミスを疑われるから検証作業が要求されるので
結局、コードが残って再現もできるようにしといた場合のほうがずっと信頼される。
自分のだったら兎も角、共有シートとかだと、勝手にシートや列を行を増やしたり、
隠したりすることも出来ない場合が殆どだし、何かまとまった操作をする場合は
やっぱりVBAを使うよ。
でもVBAを使ってちょっと荒くデータ操作とかすると古いバージョンのExcelだと落ちるは、
シートが何故か肥大かするわで、嫌う場所も多いね。
だから外部ファイルにデータだけ抜き出して、処理してから書き戻すってことを
要請されることが多い。
シートのデータは、手作業だと抜き出しにくいように工夫されてるから、外部ファイルに
書き出す作業もVBAを使う。
0444デフォルトの名無しさん
2008/04/30(水) 14:14:19俺もわからんかった・・
0445デフォルトの名無しさん
2008/04/30(水) 14:19:400446デフォルトの名無しさん
2008/04/30(水) 14:27:040447デフォルトの名無しさん
2008/04/30(水) 14:40:000448デフォルトの名無しさん
2008/04/30(水) 17:27:18> 結局、コードが残って再現もできるようにしといた場合のほうがずっと信頼される。
コードはすぐ捨てるんじゃなかったの? >>439とは別人?
0449デフォルトの名無しさん
2008/04/30(水) 17:33:10ttp://msdn.microsoft.com/ja-jp/library/system.collections.arraylist_members(VS.80).aspx
0450デフォルトの名無しさん
2008/04/30(水) 18:42:04Excelは手動操作ログ記録とそのロールバックは保存できないからな。
使ったVBAをプリントアウトしてシートから削除して提出
したらVBAが作業ログと差分を兼ねることにもなる。
(自分と先方の作業前シートのバックアップ保持は当然)
0451デフォルトの名無しさん
2008/04/30(水) 18:57:560452デフォルトの名無しさん
2008/04/30(水) 19:23:190453デフォルトの名無しさん
2008/04/30(水) 20:21:460454デフォルトの名無しさん
2008/04/30(水) 20:39:40その例題はVBAいらない。
VBAでやりたいなら止めはしないが。
0455デフォルトの名無しさん
2008/04/30(水) 21:09:38それならばやり方教えて下さい。というかVBA無しの手作業でやりなさい。
報酬は一切ありませんが。
生徒ID/国語得点/数学得点/理科得点/歴史得点/社会得点
の表がシートA1からF9999まで埋まっています。
RANGE A1:F9999以外のセルは一切改変禁止です。
シートを複製したりすることも禁止です。
(後で削除したりクリアすることも禁止です。監視員が
後ろで貴方に不正操作がないか監視していると想定して下さい。)
この条件で、ソート
order by
(5*国語得点+4*数学得点)/9,
(4*数学得点+3*理科得点)/7,
(3*理科得点+2*歴史得点)/5,
(5*歴史得点+3*社会得点)/8,
(4*社会得点+5*国語得点)/9
ASC
でお願いします。
0456デフォルトの名無しさん
2008/04/30(水) 21:11:410458455
2008/04/30(水) 21:20:25デュアルモニターで、立ち上がってるプロセスやクリップボードまで
監視されており、セルを別のブックに貼付けてなんて姑息な技は
使えないということは言う迄もありません。Lotus-123,OpenOfficeを使うこと
等も無理でしょう。
さて、この状況でどうやってソートするのか期待してます。
0459デフォルトの名無しさん
2008/04/30(水) 21:21:00君はなぜExcel使ってるの?
0460デフォルトの名無しさん
2008/04/30(水) 21:25:59別のブックに貼り付けてソートしてから元のシートに貼りなおすのはありだなあ。
姑息とは思わない。
なんでそれをやらないことにこだわってるの?
0461デフォルトの名無しさん
2008/04/30(水) 21:30:450462デフォルトの名無しさん
2008/04/30(水) 21:31:470463デフォルトの名無しさん
2008/04/30(水) 21:34:14それ、他Bookか追加シートで処理するより、CSVに吐き出して外部ソートするコード書く方が大変だろw
いちいち>>439みたいなことしてんの?馬鹿じゃね?
0464デフォルトの名無しさん
2008/04/30(水) 21:35:20デュアルモニターで監視されててソート機能すら使ってはいけない。
かわいそう。
0465455
2008/04/30(水) 21:39:55立ち上がっているような職場です!
好きでやっているわきゃないでしょ
0466デフォルトの名無しさん
2008/04/30(水) 21:42:240467デフォルトの名無しさん
2008/04/30(水) 21:42:36じゃあセルの内容を別シートにコピペするVBA作ったら?
素人が変なソート組むよりそのほうがよっぽどいいよ。
0468デフォルトの名無しさん
2008/04/30(水) 21:48:01お楽しみに!
0469デフォルトの名無しさん
2008/04/30(水) 21:49:050470455
2008/04/30(水) 21:50:000471デフォルトの名無しさん
2008/04/30(水) 21:50:09order byとかASCとか生意気なやつだ。
イラっとする。
0472デフォルトの名無しさん
2008/04/30(水) 21:50:580473デフォルトの名無しさん
2008/04/30(水) 21:52:080474455
2008/04/30(水) 21:56:000475デフォルトの名無しさん
2008/04/30(水) 21:56:35馬鹿じゃないの
0476デフォルトの名無しさん
2008/04/30(水) 21:58:29レベル低すぎーw
0477デフォルトの名無しさん
2008/04/30(水) 22:00:26必要とか思ってるところ。
0478デフォルトの名無しさん
2008/04/30(水) 22:01:04生徒が
0479デフォルトの名無しさん
2008/04/30(水) 22:12:43数学じゃないことを願う。
0480デフォルトの名無しさん
2008/04/30(水) 22:47:11んでなんでそこまで先生がむきになってるのか、更におまいらが叩いてるのかがわからんよ
おまいらの脳内モジュールにスルー判定のアルゴリズム追記しとけ
んで、ソートコード出来た?
0481デフォルトの名無しさん
2008/04/30(水) 23:10:16VBA使ってることをなんとか正当化したいんだね。
VBAでソートを組むはめになるやつには何か大切なものが欠如している。
0482デフォルトの名無しさん
2008/04/30(水) 23:22:100483デフォルトの名無しさん
2008/04/30(水) 23:33:590484デフォルトの名無しさん
2008/04/30(水) 23:38:100485デフォルトの名無しさん
2008/04/30(水) 23:54:330486デフォルトの名無しさん
2008/05/01(木) 00:15:11ArrayListのToArrayでキャストするにはどうですればいいのでしょうか??
0487デフォルトの名無しさん
2008/05/01(木) 00:54:070488デフォルトの名無しさん
2008/05/01(木) 01:11:30ファイルをデュプってODBCのExcelドライバをADO経由して開いて、
あとはそのままクエリ書けばいいじゃん。
0489デフォルトの名無しさん
2008/05/01(木) 01:16:150492デフォルトの名無しさん
2008/05/01(木) 01:29:53じゃーの
0493デフォルトの名無しさん
2008/05/01(木) 01:35:17488はちょっと期待外れだった。お題は確かに満たしているけど……。
0494デフォルトの名無しさん
2008/05/01(木) 01:42:51頭おかしいのか?
VBAなし&クリップボード使用なしでどうやるかっつー話だろ?
あ、そーか、10段階の5か。
0495デフォルトの名無しさん
2008/05/01(木) 01:58:580496デフォルトの名無しさん
2008/05/01(木) 08:24:050497デフォルトの名無しさん
2008/05/01(木) 09:12:010498デフォルトの名無しさん
2008/05/01(木) 15:24:150499デフォルトの名無しさん
2008/05/01(木) 16:28:200500デフォルトの名無しさん
2008/05/01(木) 17:10:350501デフォルトの名無しさん
2008/05/01(木) 17:47:17最大値を抜き出して、最小値から1づつ増加、判定合致したものから格納じゃだめなの?
場合に依っては死ぬほど重いけど
0502デフォルトの名無しさん
2008/05/01(木) 17:51:34なんだそりゃ。
お前自身が香ばしすぎるぞ。
0503デフォルトの名無しさん
2008/05/01(木) 17:53:350504デフォルトの名無しさん
2008/05/01(木) 17:59:480505デフォルトの名無しさん
2008/05/01(木) 18:02:21これからはクリスピーって言ったらどうかな。
0506デフォルトの名無しさん
2008/05/01(木) 18:04:29クリスピーな奴へっけん
0507デフォルトの名無しさん
2008/05/01(木) 18:08:260508デフォルトの名無しさん
2008/05/01(木) 19:13:28自前でちゃっちゃと用意することもできずに、こんな不毛なやり取りしてるあたりが
やっぱVBAスレって感じでいいね(プゲラオプスwwwwwww
0509デフォルトの名無しさん
2008/05/01(木) 19:13:590510デフォルトの名無しさん
2008/05/01(木) 19:26:03やっぱVBAスレって感じでいいね(ゴルバチョフwwwwwwwwww
0511デフォルトの名無しさん
2008/05/01(木) 19:27:140512デフォルトの名無しさん
2008/05/01(木) 19:33:58それはさておき、ソートプログラムを売る人じゃないんならクイックソート
を実装できる程度でもじゅうぶんだと思う。
>>501のはさすがにひどい。
0513デフォルトの名無しさん
2008/05/01(木) 19:48:010514デフォルトの名無しさん
2008/05/01(木) 20:09:520515デフォルトの名無しさん
2008/05/01(木) 20:12:310516デフォルトの名無しさん
2008/05/01(木) 20:40:170517デフォルトの名無しさん
2008/05/01(木) 20:55:54VBAの正しい楽しみ方だね。
ここの先輩たちのようなソート作るようなバカにはならないでね。
0518デフォルトの名無しさん
2008/05/01(木) 21:37:32if a="" then では型不一致となるのをどう書いたらいいですか?
0519デフォルトの名無しさん
2008/05/01(木) 21:39:300520デフォルトの名無しさん
2008/05/01(木) 21:48:160521デフォルトの名無しさん
2008/05/01(木) 22:30:49それがVBAの自慢できるところだと思う
初心者に優しい
0522デフォルトの名無しさん
2008/05/01(木) 22:42:36dim a as variant
0523デフォルトの名無しさん
2008/05/01(木) 23:09:36あとは格納の段階で型不一致を監視して弾く
くりすぴーな501ですがクイックソートってなんですかわかりません〉〈
直訳するとはやぶさの剣かなにかで
先生教えて〉〈
0524デフォルトの名無しさん
2008/05/01(木) 23:12:09ネットにvisual basicのコードいっぱいあるよ
0525デフォルトの名無しさん
2008/05/01(木) 23:17:40教養としてクイックソートくらいは知っておいたほうがいい。
勉強のためにVBAで組んでみるのもいいかもしれない。
でも仕事では使うなよ。VBAでソートなんてアホのやること。
0526デフォルトの名無しさん
2008/05/01(木) 23:21:44VBAじゃなくても、自分でソートのコード書くことなんてほとんどないだろ
0527デフォルトの名無しさん
2008/05/01(木) 23:26:18VBA使いはソートばかり書きたがるだろ?
0528デフォルトの名無しさん
2008/05/01(木) 23:28:47おじいちゃんとかは発狂するかもねw
0529デフォルトの名無しさん
2008/05/01(木) 23:34:22簡単なんだから作っても誰もほめてくれないぞ。
0530デフォルトの名無しさん
2008/05/01(木) 23:40:040531デフォルトの名無しさん
2008/05/01(木) 23:44:39そうか?伝わらなかったな。
「ネットで買い物する行為と同じくらい簡単な事だ」と言ってるのかと思ったよ。
0532デフォルトの名無しさん
2008/05/01(木) 23:48:24発狂するなよ
おじいちゃんには難しいかもしれんがw
0533デフォルトの名無しさん
2008/05/01(木) 23:50:12そうか。そうか。
おすすめのソートはどれだね。
0534デフォルトの名無しさん
2008/05/01(木) 23:52:22毎度馬鹿の一つ覚えの純粋クイックソートです。
要素数少なくても馬鹿の一つ覚えのようにクイックソートします。
要素数によって分岐するなんて発想はありません。
0535デフォルトの名無しさん
2008/05/01(木) 23:52:42そんなんで勝ち誇りたいなんて能無しで誰にも相手にされない
頑固じじいといっしょだねww
0536デフォルトの名無しさん
2008/05/01(木) 23:54:400537デフォルトの名無しさん
2008/05/01(木) 23:55:420538デフォルトの名無しさん
2008/05/01(木) 23:56:060539デフォルトの名無しさん
2008/05/01(木) 23:58:20????
0540デフォルトの名無しさん
2008/05/01(木) 23:59:38身近の目上の人が
「並び替えをダウンロードしろ」
とか言ったらもう馬鹿にされまくりで
誰も相手にしない
0541デフォルトの名無しさん
2008/05/02(金) 00:00:110542デフォルトの名無しさん
2008/05/02(金) 00:01:110543デフォルトの名無しさん
2008/05/02(金) 00:02:16まあいい。どんなアルゴリズムでもいいんだ。アルゴリズムの話をしたいんじゃない。
エクセルでソート自作してなんの意味あるんだということを言いたい。
0544デフォルトの名無しさん
2008/05/02(金) 00:05:58分かって遊ばれてるだけだというのに。
0545デフォルトの名無しさん
2008/05/02(金) 00:07:550546デフォルトの名無しさん
2008/05/02(金) 00:10:54当たり前と言うがこのスレ見てると本気で心配なやつがちらほら…
0547デフォルトの名無しさん
2008/05/02(金) 00:13:130548デフォルトの名無しさん
2008/05/02(金) 00:17:52その後>>443とか>>501が登場したからなあ。
0549デフォルトの名無しさん
2008/05/02(金) 02:42:25ちょっと格好わるくてもVBAでやったほうが無難かも。
情報セキュリティにうるさいDB屋の圧力があるからね。
あんまり凝ったことして得意になってると、Excelブックを一種の
アーカイブファイルとして扱い主要処理はDBでやれという動きが加速してくる。
殆どのブックは実際物置としての価値しかないんだが、一部有効に使われた
ブックには、核廃棄物のように再利用不能な割に流出すると有害なもの
が含まれてる場合がある。やっかいなことにちょっと凝ったスマートな使い方
をすると何でもないデータからそういうのが生まれることがある。
虫が湧くって感じ。
だから最近は>>443の例のように、凝った使い方を一切禁止するブックを
物置として扱うことが強制され、かつてはExcelで簡単に出来た処理もわざわざ
固く重く扱いにくいRDBの上でやれと強制される最近の傾向はそれが原因
してる。(単にDB屋の陰謀だという説もあるが)
0550デフォルトの名無しさん
2008/05/02(金) 02:46:400551デフォルトの名無しさん
2008/05/02(金) 03:05:39外部に出すと、鼻クソみたいなデータ処理でも平気で3人月とか見積もり出てくるし。
それに、RDB使うなら業務の標準化から始めないと不毛になりがち。
ま、何ごともほどほどに。
0552デフォルトの名無しさん
2008/05/02(金) 07:00:35凝らないほうがいいならなおさらVBAは使わないほうがいいじゃないか。
「セキュリティにうるさいからVBAが無難」←なぜ?
「流出すると有害なブックがある」←当たり前。
おまえ>>443だろ。
0553デフォルトの名無しさん
2008/05/02(金) 07:02:18>それに、RDB使うなら業務の標準化から始めないと不毛になりがち。
ますますRDB使いたくなるぞ。
おまえ>>443だろ。
0554デフォルトの名無しさん:
2008/05/02(金) 08:29:420555デフォルトの名無しさん
2008/05/02(金) 09:03:580556デフォルトの名無しさん
2008/05/02(金) 09:06:47ttp://www5a.biglobe.ne.jp/~tacky/rdb/rdb-000-toppage.htm
0557デフォルトの名無しさん
2008/05/02(金) 11:54:43そっか
ありがとう
配列内容をソートするのがうんたらって質問が出たからじゃない?
〉なぜ
0558デフォルトの名無しさん
2008/05/02(金) 12:06:39実は出てないらしい
0559デフォルトの名無しさん
2008/05/02(金) 13:29:32そういう時に手を出しがちなのがソート関係じゃない?
ええ、その昔、俺も組みましたよ、クイックソート
懐かしい、結構みんな通る道なんじゃないの?(俺だけか)
0560デフォルトの名無しさん
2008/05/02(金) 13:49:540561デフォルトの名無しさん
2008/05/02(金) 14:23:150562デフォルトの名無しさん
2008/05/02(金) 15:11:05派遣で就いた職場で社員から、手作業でデータを加工する仕事をまかされて、あまりの能率の悪さと面倒くささで
しかもミスると怒られるからVBA使って一発で加工するマクロ作ったらなぜか気味悪がられるようになった。
それからというもの、プリンタが止まったり、PCに何かエラーがあると全部俺が疑われるようになった。
0563デフォルトの名無しさん
2008/05/02(金) 15:31:07Excelブックが物置?
やっぱり455の言う事は意味がわからんな
0564デフォルトの名無しさん
2008/05/02(金) 16:07:09そんな会社止めちまえ
0565デフォルトの名無しさん
2008/05/02(金) 17:00:44そんな会社止めちまえ
0566デフォルトの名無しさん
2008/05/02(金) 17:05:34俺もその経験あるな・・・
0567デフォルトの名無しさん
2008/05/02(金) 17:06:34いや、あまりにも周りが無知過ぎていつか自分にもチャンスがあるんじゃないかと思って辞めれない・・。
もう少しレベルの高いとこだと使い物にならない実力だし。
そんな態度だから苛められるんだろうなぁ。
0568デフォルトの名無しさん
2008/05/02(金) 17:38:230569デフォルトの名無しさん
2008/05/02(金) 17:58:120570デフォルトの名無しさん
2008/05/02(金) 18:23:090571デフォルトの名無しさん
2008/05/02(金) 18:26:31「マクロでやれ、VBAでやれ、そうしたらスグできるだろ?○○分後までに終わらせろ」
って、何も作業の中身を見ずに、マクロ・VBAを使えば
どんな作業でもスグに終わると信じ込んでいる上司に
困ったことはあったな。
0572デフォルトの名無しさん
2008/05/02(金) 18:27:05>>562の職場は、多分シートのミス入力チェックする担当者の仕事が無くなって
立場無くなるから顰蹙を買っただけだと思う。
一般的にはシートに妙な参照や糞数式とか条件付き書式とか使ったトリッキーな
シート作るほうが顰蹙を買い易い。
VBAのコード(特に日本語だと喜ばれる)置いておく(組込んだままには
しないでテキストに落として、ブックに埋め込む)ほうが喜ばれる。
0573デフォルトの名無しさん
2008/05/02(金) 18:35:12>VBAのコード(特に日本語だと喜ばれる)置いておく(組込んだままには
>しないでテキストに落として、ブックに埋め込む)ほうが喜ばれる。
なんとなくコードっぽい日本語。
0574デフォルトの名無しさん
2008/05/02(金) 18:47:06毎回コードをエディタにコピーしてから実行するの?
なんかめんどくさそうなんだけど。
どんな処理するVBAなん?
0575デフォルトの名無しさん
2008/05/02(金) 19:19:130576デフォルトの名無しさん
2008/05/02(金) 19:21:560577デフォルトの名無しさん
2008/05/02(金) 20:10:01「ソートテクニック」だからな。
0578大邊創一
2008/05/02(金) 20:17:170579デフォルトの名無しさん
2008/05/02(金) 22:12:33じゃあ反対に、考えうる限りギリギリ使えるレベルの、最悪のソートコードだれか考えれ
0580デフォルトの名無しさん
2008/05/02(金) 22:56:010581デフォルトの名無しさん
2008/05/02(金) 23:34:50ボゴソートでもVBAで実装する話?
0582デフォルトの名無しさん
2008/05/03(土) 00:52:000583デフォルトの名無しさん
2008/05/03(土) 01:44:48以上基地外の発現でした。
0584デフォルトの名無しさん
2008/05/03(土) 02:16:42その通り。卑猥な話だからね。
0585デフォルトの名無しさん
2008/05/03(土) 07:26:52七万個の要素を昇順で並べ替えたい時にはどうすればいいですか?
0586デフォルトの名無しさん
2008/05/03(土) 07:46:310587デフォルトの名無しさん
2008/05/03(土) 07:55:370588デフォルトの名無しさん
2008/05/03(土) 07:58:510589デフォルトの名無しさん
2008/05/03(土) 08:22:41その七万個の要素はどんな状態にあるの?
csvなりのフォーマットに落ちているなら、sortすればいいだけだが。
0590デフォルトの名無しさん
2008/05/03(土) 08:29:03kwsk
0591デフォルトの名無しさん
2008/05/03(土) 08:30:150592デフォルトの名無しさん
2008/05/03(土) 08:33:48unix系のsortにしても、テキストに落ちている必要はあるけど。
0593デフォルトの名無しさん
2008/05/03(土) 08:38:32工エエェェ(´д`)ェェエエ工工
>>589
Sheet1とSheet2のA列〜F列×35000行と思って頂いて差し支えありません。
0594デフォルトの名無しさん
2008/05/03(土) 08:50:141シートずつ別々のcsvファイルに落として、二つのcsvファイルをまとめてsortでOK。
cygwin使うなり、Linuxをリモートで使うなりできるなら、出力を二つのcsvファイルに分けるところまでできる。
そうでないなら、それこそVBAで分割して読み込むって処かな。
いずれにしても、自分でソートを書く必要はないわけで。
どうしてもVBAでやるなら、各シートをそれぞれソートしてからマージソートかね。
0595デフォルトの名無しさん
2008/05/03(土) 09:31:010596デフォルトの名無しさん
2008/05/03(土) 10:53:09探して、並べ替えればいいのでは
0597デフォルトの名無しさん
2008/05/03(土) 12:07:29サンクスコ
具体的にどういう手順でやればいいの?
聞いてばっかでゴメソ
>>596
ソートのコードがいるんだね
0598デフォルトの名無しさん
2008/05/03(土) 12:11:22http://pc11.2ch.net/test/read.cgi/bsoft/1207792832/
0599597
2008/05/03(土) 12:20:03助言してくれた皆さんありがとう
あとは自分で何とかしてみるよ
0600デフォルトの名無しさん
2008/05/03(土) 12:30:22せっかくVBAで仕事が早く終わるようになったのなら
仕事してるふりしてネットでも見てなさい
0601デフォルトの名無しさん
2008/05/03(土) 13:07:551. Sheet1, Sheet2をExcelの機能でソートする
2. Sheet1の10,000行目のソートキーを区切りにして、そこより上をSheet3に、下をSheet4にコピー
3. 2で使ったソートキーの場所を見つけ、そこより上をSheet3, 下をSheet4にコピーする
4. Sheet3, Sheet4をそれぞれExcelの機能でソートする
Sheet1を10,000行と25,000行にまず分割するので、Sheet2の内容がまるごとどちらかに追加
されてもSheetの行あふれは起こらないというのがミソ。
0602デフォルトの名無しさん
2008/05/03(土) 13:08:460603デフォルトの名無しさん
2008/05/03(土) 14:03:500604デフォルトの名無しさん
2008/05/03(土) 17:25:161.幾つかボタンがあり、ボタンを押すとボタン名のシートが追加されます
作成されたシートに任意の数字を入力しそのシート内でそれが合計されます
2.次に集計用のシートに1で集計した数を貼り付けます。
3.これを追加されたシート分繰り返す。
という処理をするマクロを作成中なのですが、
・追加されたシート分だけコピーするという条件(左から2番目のシートから処理をはじめ
シートの右から2番目まで繰り返すというのを考えています
と
・集計しコピーしたものを集計用シートの前回貼り付けたセルの横に貼りつけ
をどのうように組めばいいのか思いつきません…。
ボタンの数は全部で7つで最高増えるのが7シートなので、
最初から7つのシートを作成しその集計を集計用のシートに貼りつけするのは
できるのですが、そうすると使わないシートまで作成することとなるので出来ればそういう
ムダを省きたいと思い上記のような事を考えました。
なにか改善策やヒント等ございましたらご教示の程お願い致します。
0605デフォルトの名無しさん
2008/05/03(土) 17:36:12For i = 2 to Worksheets.Count -1
Worksheets(i) に対して処理
Next
こんな感じでどうでしょう
0606デフォルトの名無しさん
2008/05/03(土) 18:09:23LANカード抜いたPCでやったほうがいい。USBメモリで外部データとの
やりとりをする。
ネットやLANに繋がってる環境でVBAを使うとDLLアクセスとか
出来るんで、ネットにデータ流出してるとかしてないとかDB屋が騒ぎ
だす。今やネットやLANに繋がってるPCでExcelやAccessでVBA使う時
は管理者許可がデフォになってるね。
ソートで騒いでいるようだが、DBもExcelもソートは実は余り得意じゃない。
ソートしないで済むようにデータを入れていくのがキホン
0607デフォルトの名無しさん
2008/05/03(土) 18:38:120608デフォルトの名無しさん
2008/05/03(土) 18:44:21VBAかLANかと言われたらLANを選ぶ。
あとそれからエクセルとアクセスはソートが得意。これ豆知識な。
0609デフォルトの名無しさん
2008/05/03(土) 18:53:420610デフォルトの名無しさん
2008/05/03(土) 19:23:11たかが成績表の並べ替えに面倒なやつだな。
0611デフォルトの名無しさん
2008/05/03(土) 20:34:47>ソートで騒いでいるようだが、DBもExcelもソートは実は余り得意じゃない。
>ソートしないで済むようにデータを入れていくのがキホン
ちよ、ちょっと。そんな馬鹿な。DBやExcelはツールであって得意じゃないのは使う側の能力がかなり影響するでしょ?
ソートしなくいで澄むようにデータ入力って・・・そんな馬鹿な・・・
0612デフォルトの名無しさん
2008/05/03(土) 20:44:20>>606は>>443だろう。
こいつは何かおかしい。病的だ。きっと優先順位の並べ替えが苦手なんだろうな。
0613デフォルトの名無しさん
2008/05/03(土) 21:17:13ソートしなくて済むようにするにはデータをどうやっていれるんでつか?
0614デフォルトの名無しさん
2008/05/03(土) 21:23:330615デフォルトの名無しさん
2008/05/03(土) 21:33:35手作業でか?
0616デフォルトの名無しさん
2008/05/03(土) 21:42:410617デフォルトの名無しさん
2008/05/03(土) 21:58:41お願いがあります、
頼むからコテつけて下さい
0618デフォルトの名無しさん
2008/05/03(土) 22:11:360619デフォルトの名無しさん
2008/05/03(土) 22:16:25似てるな。あっちは、707だが
0620デフォルトの名無しさん
2008/05/03(土) 22:41:14あくまでもVBAでバカなことやろうとするやつへの戒めであって、本気でそんなことするやつはいないからこそ成立するギャグだった。
0621デフォルトの名無しさん
2008/05/03(土) 22:45:59モンティパイソンだろそれは
0622デフォルトの名無しさん
2008/05/03(土) 23:14:31本当にやりたいことはなんだろう。シートを出したり引っ込めたりすることなの?
0623デフォルトの名無しさん
2008/05/03(土) 23:31:36お子ちゃまの世界のこと?
0624デフォルトの名無しさん
2008/05/03(土) 23:48:18優先度が簡単にわかることとお子ちゃまとにどんな関係があるのやら。
やっぱり病気だな。
0625デフォルトの名無しさん
2008/05/04(日) 00:47:13お子ちゃまの世界や極端な大人の世界では、優先順位は
簡単にわからないぞ。
2つのものを比較できるかどうかすら怪しいからね。
2つのものが比較出来るのが自明というそんじょそこらの
大人の世界は、もしかすると非常に幼稚な世界かもしれないぜ
その幼稚園の主役がExcelやAccessだったりするから悲
しいものがあるが。
0626デフォルトの名無しさん
2008/05/04(日) 10:12:240627604
2008/05/04(日) 13:22:19ありがとうございます!
データを会社においているので、試すのは明日しようと思いますがそれで上手く
いけそうな気がします!
セルのコピーについてはかなり強引ですが、
集計した1セルごと行数分(57行あるのですが・・・)コピーして貼り付け
だと次のシートの集計をしたとき貼り付けも隣の行(セル)に上手く貼りついてくれたので
とりあえず結果オーライです。
まだまだ覚え始めなのですが、このスレを見ながら少しずつ色んな考えを持てるようにしたいと思います。
ありがとうございます。
0628デフォルトの名無しさん
2008/05/04(日) 13:26:44比較できるのが自明なものなんて限られてるわ。
0629デフォルトの名無しさん
2008/05/04(日) 14:54:28ベクトルは大小比較できないと思ってる?
0630デフォルトの名無しさん
2008/05/04(日) 15:56:14グローバルには標準化できないだけで、恣意的に決めればローカルには定義できるだろ?
大小関係の比較が難しいというのは、次のようなソート問題
大人n人子供m人のM個の家族がある。(当然家族ごとにn,mは異なる)
それぞれ別のM個のホテルに泊まるとする。
それらのホテルは、一般的に大人、子供の宿泊料金が別(常に半額というわけでもない)
シート1の各行にはホテル毎の料金表(大人・子供)
シート2の各行には家族の大人・子供人数があるとする。
シート1の1行に記載されてるホテルにシート2の1行の家族が泊まるとする。
シート2の行を並べ替えて、宿泊料金の総和が最も安くなるようにソートしろ
というような問題
これはエクセルだろうがDBだろうが難しい。ソートの専門家向けの問題。
「車輪の再発明」なんて、小馬鹿にした慣用表現は忘れろ
0631デフォルトの名無しさん
2008/05/04(日) 17:12:510632デフォルトの名無しさん
2008/05/04(日) 17:18:450633デフォルトの名無しさん
2008/05/04(日) 17:19:360634デフォルトの名無しさん
2008/05/04(日) 17:36:34超簡単に見えるけど?
0636デフォルトの名無しさん
2008/05/04(日) 19:02:30だよなあ。VBAなんぞまったく使わずに集計&ソート可能。
ソートの専門家向けの問題だって。おもしろすぎる。車輪の再発明の現場を目撃したよ。
0637デフォルトの名無しさん
2008/05/04(日) 19:26:54ベクトルをグローバルに標準化はできないけど、恣意的に決めればローカルには定義できる。
つまり大小比較できるの?できないの?もっと詳しく説明してほしいな。
0638デフォルトの名無しさん
2008/05/04(日) 19:29:240639デフォルトの名無しさん
2008/05/04(日) 19:33:430640デフォルトの名無しさん
2008/05/04(日) 20:46:500641デフォルトの名無しさん
2008/05/04(日) 21:01:560642デフォルトの名無しさん
2008/05/04(日) 22:12:30複素数の並べ替えすらできないバカがVBAでどんなことやってんだよ。笑わせんな。
0643デフォルトの名無しさん
2008/05/04(日) 22:44:25集計はともかく、順列組み合わせをシートに吐き出す部分だけはVBA使わないと苦しくないか?
試しに6家族でやってみたが720通り(6の階乗)の組み合わせをVBAで実際に書かせないと
俺の腕では最小値が見つけられない_| ̄|〇
9家族以上になったら1シートにおさまらないし
VBAばっかり使っててExcelの基本機能に無知なせいかもしれんが
誰か答えプリーズ!
0644デフォルトの名無しさん
2008/05/04(日) 22:55:320645デフォルトの名無しさん
2008/05/05(月) 00:00:06VBAばかり使っていると壁にぶつかるよ。一度離れて基礎的な勉強をしてほしいな。
組み合わせ最適化問題は難問で昔からいろいろ研究されています。ソルバー機能について調べてみて。
0646デフォルトの名無しさん
2008/05/05(月) 00:04:35組み合わせ最適化問題は地獄の1丁目でつ.入門は慎重に.
0647デフォルトの名無しさん
2008/05/05(月) 00:19:050648デフォルトの名無しさん
2008/05/05(月) 00:58:07例えば大人が10人子供が1人の家族Xと
大人が1人、子供が10人の家族Yが居たとする。
Aホテルでは大人料金は10000円、子供料金は2000円
Bホテルでは大人料金は5000円、子供料金は3000円とする。
XがAに泊まりYがBに泊まる場合→102000+35000=137000円
XがBに泊まりYがAに泊まる場合→53000+30000=83000円
泊まらせ方によって結構差が出るだろ?
0649デフォルトの名無しさん
2008/05/05(月) 01:02:25という事は、それぞれの家族がどのホテルに泊まれば
一番安いかってことかね。
0650デフォルトの名無しさん
2008/05/05(月) 01:20:27いけない、という制約をどう実装すればいいのか思いつかない
0651デフォルトの名無しさん
2008/05/05(月) 01:35:240652デフォルトの名無しさん
2008/05/05(月) 02:17:120653デフォルトの名無しさん
2008/05/05(月) 13:29:12ホテル選びの例題だって実際にはあり得ない人工的な状況設定だし。
0654デフォルトの名無しさん
2008/05/05(月) 13:37:51それじゃソルバーで解けない場合はどうするのか?
VBAで組むのだろうか?
>>630はどうするつもり?
0655デフォルトの名無しさん
2008/05/05(月) 15:05:10ふいた
0656デフォルトの名無しさん
2008/05/05(月) 15:59:27>Excel使ってる人が現実に解かなければならない場面はほとんどないだろう。
その考え方は殆どExcelをExcelとして使っていないから出てくる考え方だな
まぁいい。本来Excelなどをまともに使いこなせるのは200年以上の人生経験(☆比喩)
が必要な世界だからな。
Excelは RDBというリアルタイム志向でアブソリュートな情報の作成ツール
を補佐するツールとして使えばいい。
>>630の問題で言えば、
最小コストと最大コストの推測、コストの分布の概略を掴む。(これを完全にやるのは
まぁ無理だろう)
これにより価格体系や家族構成に問題があるかないかを推測し、交渉する材料とかに
するわけだ。
価格体系や家族構成の分布が悪いと、家族間や家族対ホテルで殺し合いが発生して
双方共に絶滅する可能性すらあるからな。
双方を双方の価値観を厳格に固執する態度じゃリアルタイムには問題は解決しないという
前提に立つのが賢い。
0657デフォルトの名無しさん
2008/05/05(月) 16:21:20例えば客の家族構成に問題がある場合はどのような解決手段がある?
0658デフォルトの名無しさん
2008/05/05(月) 16:34:31君が組み合わせ最適化問題に興味を持っているのはわかった。
そして今の今までそれを専門家向けのソートと呼んでいたこともわかった。
0659デフォルトの名無しさん
2008/05/05(月) 16:37:430661デフォルトの名無しさん
2008/05/05(月) 17:22:14>最小コストと最大コストの推測、コストの分布の概略を掴む。
最適化手法からそのような結果は出てこない。
0662デフォルトの名無しさん
2008/05/05(月) 17:24:43基本的にはその通りなんだが、けっこう大変なんだぞ。
0663デフォルトの名無しさん
2008/05/05(月) 17:43:23組み合わせ最適化問題はどこにでも付きまとう問題で
>>630のような問題は、その一つの例
興味を持たないで済ませられる人は余り居ない。
抽象化したら同じになるけど、問題が余りに広範なんで、
問題毎に使える手法に制限に色々とバリエーションが
出てくるので、問題毎に専門分野を作ってる
抽象化すれば>>630に類する問題をまともに扱っている
人はその道の専門家でいいんじゃないの?
そもそも一般人と専門家って両立する概念なんだから。
0664デフォルトの名無しさん
2008/05/05(月) 17:51:15ソートの専門家ってのは聞いたことないな。
0665デフォルトの名無しさん
2008/05/05(月) 17:52:19組み合わせ最適化問題を解くことは非常に有益だし、興味ももっています。
しかし考えてみてください。>>630書いてるやつは>>443なんですよ。
0666側近中の側近 ◆0351148456
2008/05/05(月) 18:08:01テーブルを作って、その直積(デカルト積)を求めて、
ソートすればいいのでは?
とレスをあまり読まずに言ってみましたが何か?
0667デフォルトの名無しさん
2008/05/05(月) 18:10:05もう少しじっくり読んでくれ。
とりあえず>>443から順番に。
0668デフォルトの名無しさん
2008/05/05(月) 18:17:55>>439>>443>>455>>549>>606>>630>>656とか
なんか全部>>443が書いたみたいに思ってる奴がいるみたいだが
ここじゃ皆「デフォールトの名無しさん」だろ?
>>439!=455とか
書いたところで無意味だし...
ねぇ>>667 =? >>439
0669デフォルトの名無しさん
2008/05/05(月) 18:23:38>>667だが>>439ではないよ。
>>439>>443>>455>>549>>606>>630>>656
この中で>>439だけは違うやつだと思う。
>>443>>455>>549>>606>>630>>656
こいつらは同じやつだと思う。
0670側近中の側近 ◆0351148456
2008/05/05(月) 18:29:13全て(っ´▽`)っの自作自演だったらどうする?
ID無しの板っていいよね☆自作自演し放題で。
|彡☆
0671デフォルトの名無しさん
2008/05/05(月) 19:15:320672側近中の側近 ◆0351148456
2008/05/05(月) 19:41:29(っ´▽`)っ
ある!
(っ´▽`)っは最高20人同時演出可能。
たまに自分のレスだと忘れて、そのレスにマジレスしてしまうことがある。
自分でも勘違いするぐらい、騙されるぐらい自演が美味い。。
0673デフォルトの名無しさん
2008/05/05(月) 19:50:210674デフォルトの名無しさん
2008/05/05(月) 20:14:23貴方をはじめ>All except >>443etc の腐ってない新鮮な
頭脳が残っただけが救いだと思おうよ
0675デフォルトの名無しさん
2008/05/05(月) 20:21:53めでたいやつだな。
複素数の並べ替えはできたのか?
0676デフォルトの名無しさん
2008/05/05(月) 20:25:300677デフォルトの名無しさん
2008/05/05(月) 20:32:45>>630
ベクトルをグローバルに標準化はできないけど、恣意的に決めればローカルには定義できる。
つまり大小比較できるの?できないの?もっと詳しく説明してほしいな。
0678デフォルトの名無しさん
2008/05/05(月) 20:56:580679デフォルトの名無しさん
2008/05/05(月) 21:40:380680デフォルトの名無しさん
2008/05/05(月) 22:46:09ブックAに「計1-A」、「計1-B」、「計2-A」、「計2-B」、というシートがあって、
VBAで
「計1」と名をつけた新しいブックを作り、「計1-A」、「計1-B」をそこにコピーする、更に「計2」も同様に・・・
というのを一連の操作で行いたいのですが、
新しいブックの名前をどうつけてやったら良いのか分かりません。
sheets(Array("計1-A", "計1-B", ).CopyではただのBook1に保存されてしまいます。ぜひ名前をつけたいんですが、どうすればよいのでしょう
ご教示願います
0681デフォルトの名無しさん
2008/05/05(月) 22:55:020682デフォルトの名無しさん
2008/05/05(月) 23:02:02"ソートの専門家"の検索結果 2 件中 1 - 2 件目
両方とも、このスレwww
0683デフォルトの名無しさん
2008/05/05(月) 23:12:270684デフォルトの名無しさん
2008/05/05(月) 23:17:39ソートの専門家は種類が多過ぎてもはや専門家とはみなされてないだけだろ。
昔48種に大分類されたらしいが、その後もでるわでるわバリエーションの山。
分類プロジェクトは頓挫中。
ソートくらい奥深い世界は無いみたいだ。たかがソート、されどソート。
0685デフォルトの名無しさん
2008/05/05(月) 23:21:260686デフォルトの名無しさん
2008/05/05(月) 23:22:050687デフォルトの名無しさん
2008/05/05(月) 23:22:56そーとしておけ
0688デフォルトの名無しさん
2008/05/05(月) 23:23:38ソートの専門家とは言えない。
0689デフォルトの名無しさん
2008/05/05(月) 23:24:52もはや何を言いたいのかよくわからんが、今や専門家と看做されてないなら、
「ソートの専門家」じゃないだろ。
0690デフォルトの名無しさん
2008/05/05(月) 23:26:10え?アルゴリズムが違うと、結果も違うのか?
0691デフォルトの名無しさん
2008/05/05(月) 23:28:150692デフォルトの名無しさん
2008/05/05(月) 23:31:28これはひどい
0693デフォルトの名無しさん
2008/05/05(月) 23:31:52専門家はそんなくだらない事より本質を重要視する。
0694デフォルトの名無しさん
2008/05/05(月) 23:33:330695デフォルトの名無しさん
2008/05/05(月) 23:51:170696デフォルトの名無しさん
2008/05/05(月) 23:57:40てか、上げるなよ
0697デフォルトの名無しさん
2008/05/06(火) 00:14:140698デフォルトの名無しさん
2008/05/06(火) 00:24:420699デフォルトの名無しさん
2008/05/06(火) 00:31:460700デフォルトの名無しさん
2008/05/06(火) 01:18:080701デフォルトの名無しさん
2008/05/06(火) 01:34:47番号が付いてる限りソートされていると感じる
脳みそにとってはな
0702デフォルトの名無しさん
2008/05/06(火) 11:43:51グランドシティ大宮イーストタワー グランドシティ大宮イーストタワー グランドシティ大宮イーストタワー
グランドシティ大宮イーストタワー グランドシティ大宮イーストタワー グランドシティ大宮イーストタワー
0704デフォルトの名無しさん
2008/05/06(火) 14:30:12熱い場所だ
担当者ご苦労さん
0705デフォルトの名無しさん
2008/05/06(火) 19:16:160706デフォルトの名無しさん
2008/05/06(火) 20:39:340707デフォルトの名無しさん
2008/05/06(火) 21:37:060708デフォルトの名無しさん
2008/05/07(水) 02:11:550709デフォルトの名無しさん
2008/05/07(水) 08:26:19わしはできたぞ。
正確に言うとソートじゃない。最適な組み合わせを求めたということ。
0711デフォルトの名無しさん
2008/05/07(水) 11:08:37家族構成も全部異なる場合で実例が出てくるまで
誰も信じないと思う。本当にソートされてるのか
も示せないとな。
0712デフォルトの名無しさん
2008/05/07(水) 11:55:25M=14まででお願いします。ソルバーの制限で200変数までしか扱えないから。
ただしM=14の時に現実的な時間で解けるかどうかわからないけど。
それからソートと呼ぶのはやめないか?
0713デフォルトの名無しさん
2008/05/07(水) 12:40:470714デフォルトの名無しさん
2008/05/07(水) 12:49:53このスレからノーベル賞受賞者が(・∀・)ワクワク
0715デフォルトの名無しさん
2008/05/07(水) 13:13:03前から思ってたんだかこのスレに出入りしてるやつら中学生が多いだろ。
レベル低すぎて話にならん。せめて高校出てからデビューしろ。
0716デフォルトの名無しさん
2008/05/07(水) 15:16:370717デフォルトの名無しさん
2008/05/07(水) 15:22:28[[ウィキペディア]]でのアカウント名は[[User:Yassie]]、[[2ちゃんねる]]では◆sMt4YbtR06という[[トリップ]]を使用。
Nanassieというコテハンを使っていた時期もある。身長171cm、体重75kg。さいたま市[[大宮区]]在住。独身。
好きな歌手は[[サラ・マクラクラン]]、好きな女優は[[メグ・ライアン]]。
[[User:Aphaia]](本名・木津尚子)や[[User:Mikihisa]]や[[User:NiKe]]や[[User:掃除屋ケンちゃん]]との死闘で知られており、
現在は[[User:Haruno Akiha]]や[[User:WhiteWing]]をウィキペディアから追放すべく策動を続けている。
==経歴==
[[埼玉県立浦和高等学校]]を経て、[[国際基督教大学]][[教養学部]]社会科学科に入学。学部時代は
[[オハイオ州立大学]]に交換留学し、[[経営学]]を専攻。オハイオ州立大学への編入を望み、願書はほぼ完成していたが
アジア経済危機の煽りを受けて学費を工面できなくなり、相思相愛の恋人をアメリカに残したまま、[[1999年]]、日本に帰国。
のちに当時のことを振り返って「精神面は相当荒れてたね」と語った。[[2000年]]に国際基督教大学を卒業して
外資系企業に入社し、[[英語]]を使用した事務的な職務を担当。[[2004年]]、Excel2002VBAスタンダードに合格。
[[2005年]][[12月27日]]から[[ウィキペディア日本語版]]で北米の地理に関する記事を翻訳・投稿。今日に至る。
私生活では、失恋の傷を忘れるため、[[1999年]]から[[ダンスダンスレボリューション|DDR]]に熱中し、
新宿チルコポルトや大宮タイトーインに出没していたが、自惚れの強さと事大主義ゆえに諸方の反感を買い、
2000年頃には撤退を余儀なくされた。
{{people-stub}}
{{DEFAULTSORT:やしま りようた}}
[[Category:インターネットの人物]]
[[Category:埼玉県出身の人物]]
[[Category:デブ]]
[[Category:日本のダンサー]]
[[Category:1975年生]]
0718デフォルトの名無しさん
2008/05/07(水) 16:16:4815*15=225 >200
つまりLPですね。よくできました。
0719麻雀を作りたい
2008/05/07(水) 17:48:28excel2000
VBA実行中に、ユーザにいったん制御をもどして、シート上の特定範囲のセルをクリック。
そのクリックをトリガーに処理再開。
というような事をしたいのですが、どうすれば実現できるかわかりません。
良い案やヒントないでしょうか・・?
0720デフォルトの名無しさん
2008/05/07(水) 18:02:20どうしてもクリックがよい場合はクリックイベントを検出できるもの(ボタンやシェイプ)を追加する
0721麻雀を作りたい
2008/05/07(水) 18:18:07コメントありがとうございます。
BeforeDoubleClick
SelectionChange
とかを使えば良いのかなあとは思ってました。
引っかかってるのは、「VBA実行中に、ユーザにいったん制御をもどして」のところなんです。
中断前の変数の状態を保持したまま、いちどユーザに制御を戻して、シート上のセルを(ダブルor右)クリックでVBA再開。
つまり
�@自分の番になったら一枚ツモってきて
�Aいらいない牌を手牌の中から一枚選択して(シート上のセルをクリックして)、
�Bすてる。
ってことをしたいんですね。
�@まではVBAで処理して、�Aの動作はシート上のセルをクリックすることで選択して、
�BからはVBAにまた処理を戻す。
・・・自分の実力じゃ無理かな・・・orz
0722デフォルトの名無しさん
2008/05/07(水) 18:40:04セルを使わずに、全部ボタンをはっつけてしまったほうが楽なんで内科医?
0723デフォルトの名無しさん
2008/05/07(水) 18:51:170724麻雀を作りたい
2008/05/07(水) 19:20:52cell_雀みたいなの作りたかったですが、あきらめようかな。
0725デフォルトの名無しさん
2008/05/07(水) 20:39:11フォーム画面が出るため、どこの行でエラーが起きてるのかわかりません。
解決方法ご教授願います
0726デフォルトの名無しさん
2008/05/07(水) 21:32:21>>656
>その考え方は殆どExcelをExcelとして使っていないから出てくる考え方だな
なんていうくらいだから当然できたんだろうな。
0727デフォルトの名無しさん
2008/05/07(水) 22:04:47こんなのじゃだめ?
Do While Len(ActiveCell.Value) = 0
DoEvents
Loop
0728デフォルトの名無しさん
2008/05/07(水) 23:44:06別Bookのフォーム上のテキストボックスの値を取得する
ことはできますか?
ツール側に関数を作ればできることはわかったのですが、
できればツール側に修正を入れたくないです。
ヒントお願いします。
0729デフォルトの名無しさん
2008/05/07(水) 23:56:170730デフォルトの名無しさん
2008/05/08(木) 00:09:24んなことより、>>728は無理じゃないのかなぁ?
フォームをキャプチャ→画像解析→テキスト取得とか?ごめん、嘘・・・
0731デフォルトの名無しさん
2008/05/08(木) 00:29:24>>729
エスパー&エクセル素人
0732デフォルトの名無しさん
2008/05/08(木) 00:32:01やっぱり無理なんですかね。
そもそも、MsgBoxとかもやっているので、どうやってOK押すかとか前途多難です。
みんな手でテストやってるのかな・・・。
0733デフォルトの名無しさん
2008/05/08(木) 03:08:30Win32APIを使えば、OKボタンもAPIでクリックできるけど、より良い方法は、
テスト対象のメソッドでダイアログ入力待ちなどが起きないような設計にする。
とはいえ、どこかでMsgBoxを出さざるを得ないだろうから、そこはマニュアルテストとかかな。
0734デフォルトの名無しさん
2008/05/08(木) 07:57:19俺にはどっちがツールなのかすら分からないよ
0735デフォルトの名無しさん
2008/05/08(木) 08:30:100736デフォルトの名無しさん
2008/05/08(木) 16:11:050737デフォルトの名無しさん
2008/05/09(金) 13:03:030738デフォルトの名無しさん
2008/05/09(金) 14:48:45例にすると
セルをクリックしたら、そのセルについたコメント(7~8行ぐらい)の内容を
A15に22R X 7C以上の範囲にそのコメント内容を載せる という物を作ろうとしてるのですが
全く、できず困ってます。
こういうのは可能でしょうか?
0739デフォルトの名無しさん
2008/05/09(金) 17:20:230740デフォルトの名無しさん
2008/05/09(金) 18:57:46出来る
>>738
可能
>>739
「セルのコメント」だろ
0741デフォルトの名無しさん
2008/05/09(金) 22:52:310742デフォルトの名無しさん
2008/05/09(金) 23:37:18でき
れ
0743デフォルトの名無しさん
2008/05/09(金) 23:39:06>>737 ttp://www.cpearson.com/excel/vbe.aspx
>>738 range.comment, range.notetext
0744デフォルトの名無しさん
2008/05/09(金) 23:58:10それはソート前にセル探すのとどう違うんだ
と言うか、出来るように設定しておけばいいだけでわ
0745デフォルトの名無しさん
2008/05/10(土) 08:30:40どうしたらいい?
0746デフォルトの名無しさん
2008/05/10(土) 09:43:16IsCommentCell = Len(Range(sAddress).NoteText) > 0
End Function
Function GetFullCommentText(sRange As String) As String
Dim sComment As String
Dim iPos As Integer
iPos = 1
While Range(sRange).NoteText(, iPos) <> ""
sComment = sComment & Range(sRange).NoteText(, iPos)
iPos = iPos + 255
Wend
GetFullCommentText = sComment
End Function
'コメント取得方法は分かったが
'それをA15に表示する方法がググレナイ…
'例えば A1にあるコメントをクリックしたら(7行)A15以降にそのコメントが表示されて
'その後、B5にあるコメントをクリックしたら、A15に表示されたA1のコメントが消えてB5のコメントが表示できるようにしたい。
'どうしたら良いでしょうか?
0747デフォルトの名無しさん
2008/05/10(土) 10:07:09A1から12R X 11Cのどのセルをクリックしても
そのセルについてるコメントを
A15に表示させるようにしたいです。
0748デフォルトの名無しさん
2008/05/10(土) 10:55:14VBEditorで
ツール→VBAProject-プロジェクトプロパティ
→保護タブ
→パスワードを入れる
0749デフォルトの名無しさん
2008/05/10(土) 11:23:5412R X 11C?
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Target.Comment Is Nothing Then
Range("A15").Value = Target.Comment.Text
End If
End Sub
?
0750デフォルトの名無しさん
2008/05/10(土) 11:44:560751デフォルトの名無しさん
2008/05/10(土) 11:50:35A15の縦の長さを 常時コメントと同じ高さにあわせるように応用するだけか・・・
0752デフォルトの名無しさん
2008/05/10(土) 12:04:270753デフォルトの名無しさん
2008/05/10(土) 18:48:390754デフォルトの名無しさん
2008/05/10(土) 23:53:59フォームのボタンの場合は、
Dim s As Shape
Set s = ActiveSheet.Shapes("Button 5")
s.TextFrame.Characters.Text = "ほげほげ"
のようにすれば書き換えられます。
では、コントロールのボタンはどのようにして書き換えればいいのでしょうか?
同じように書くと、s.TextFrame.Characters.Textの行を実行するときに、
オブジェクトは、このプロパティまたはメソッドをサポートしていません
と叱られます。
0755デフォルトの名無しさん
2008/05/11(日) 01:33:180756デフォルトの名無しさん
2008/05/11(日) 04:35:17・資金ゼロでも優秀な開発者は一千万円の特別賞あり、デモトレードなのに優勝したら三百万円の賞金
●6月にマネージャパン、月刊アスキー、週刊アスキーの3誌が賞金総額2000万円の「シストレFXグランプリ」を開催
http://system-trading.jp/news/index.php?cID=3
[シストレFXグランプリとは]
クリック証券が提供するFXのデモ取引環境を利用して、システムトレードにチャレンジできるFX取引のグランプリです。
お客様ご自身で作成したシステムトレードの機能を評価する「シストレソフト部門」とトレード収益を競う「トレード部門」の2部門構成となっております。
●5月22日より登録受付開始、6月2日よりグランプリ開始の予定。賞金総額2000万円。
デモトレードの優勝者には賞金三百万円がプレゼントされます。
▼トレード部門
初期資産500万円で、デモ取引のトレード収益を競っていただきます。
●http://www.fx-gp.com/about/
▼賞金総額
■社長特別賞(シストレソフト買取価格) 10,000,000円
●シストレソフト部門賞 1位300万円 2位100万円 3位50万円
●トレード部門賞 1位300万円 2位100万円 3位50万円
●前期MVP賞 50万円
●後期MVP賞 50万円
0757側近中の側近 ◆0351148456
2008/05/11(日) 11:02:55(っ´▽`)っ
ActiveSheet.CommandButton1.Caption = "ddddd"
0758側近中の側近 ◆0351148456
2008/05/11(日) 11:04:56(っ´▽`)っ
Calculate メソッド
計算対象 指定例
すべてのブック Application.Calculate または Calculate
特定のワークシート Worksheets(1).Calculate
指定されたセル範囲 Worksheets(1).Rows(2).Calculate
0759デフォルトの名無しさん
2008/05/11(日) 12:11:02ありがとうございました。できました。
以下、俺様メモ。
VBAのオブジェクトブラウザを使って
クラスSheetXのメンバをオブジェクト名(たとえばCommandButton1)で探すこと。
ボタンのクラスはCommandButton
0760デフォルトの名無しさん
2008/05/11(日) 19:04:23>→パスワードを入れる
でけた。ありがと。
0761デフォルトの名無しさん
2008/05/12(月) 14:27:05これってどういう意味ですか?
0762デフォルトの名無しさん
2008/05/12(月) 14:50:23イメージ的にはA1:B13みたいな縦13*横2の二次元配列。
変数名からしてString型にした方がいいと思うが。
0763デフォルトの名無しさん
2008/05/12(月) 15:59:00ありがとう、把握しました。
後、マクロを無効にしないとエディターで編集が出来ないんですが、これはどうすればいいんでしょう。
csvを読み込んで配置するマクロを編集してるのですが、無効にするとデバッグ出来ません。
0764デフォルトの名無しさん
2008/05/12(月) 19:29:240765デフォルトの名無しさん
2008/05/12(月) 20:10:15あるデータを取得する関数の戻り値がString限定なのですが、中身がバイナリ直のDoubleで
どう変換するべきかつまっています。
全体のデータは
#XXX{Data double 8byte}{Data double 8byte}{Data double 8byte}.....
の様な形で {data}の部分は8byte double形式で書かれています。
最初に"#"
その後にデータの数の桁数
その後ろがデータの数
その後は8byte Doubleの数が並んでいます。
例:
#212{data}...({data}が12個)
^個数を表す数字が2桁 の意味
^{data}が12個あると言う意味
関数はCall ibrd( ID as Int , buf as String , count as long ) にてメモリからデータを
countのByte数だけbufに取り込める仕様です。
ibrd( id , buf , 1) '#の部分取得
ibrd( id , buf , 1) '桁数取得
ibrd( id , buf , N) '上記の桁数分だけ取得
for i = 1 to Num step 1 '上記の数分だけ{Data}を取得
ibrd( id , buf , 8) '8Byteづつ取得する
next
この時、8byteづつ取得すると
変数 buf には String 形式で 本来Doubleのバイナリ値がそのままつっこまれてしまいます。(ウォッチウィンドウで見ると空白など)
数字の1などが入っていればCdbl(buf)でいけるのでしょうが、
型がStringで中身のバイナリがDoubleになってる状況で、これをDoubleに直して数字を取得したいのですが
何か助言もらえないでしょうか?
0766デフォルトの名無しさん
2008/05/12(月) 21:00:480767デフォルトの名無しさん
2008/05/12(月) 22:04:340768デフォルトの名無しさん
2008/05/13(火) 01:36:36甘いな
0769デフォルトの名無しさん
2008/05/13(火) 08:28:32パスワードの不正解析されても、データ等を守る方法はない?
0770デフォルトの名無しさん
2008/05/13(火) 12:27:060771デフォルトの名無しさん
2008/05/13(火) 12:34:14不正アクセスと断定できるなら、偽装データを渡したり
どこまで相手にするかにもよるけど、ある程度以上のクラッカには対策立てられぬ
そもそもマクロ無効で覗かれたらエクセルじゃどうしようもないし、エクセルのパスは飛ばせる裏技あったような
0773デフォルトの名無しさん
2008/05/13(火) 22:45:12ttp://www.google.com/search?q=VBA+%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89&rls=com.microsoft:ja:IE-SearchBox&ie=UTF-8&oe=UTF-8&sourceid=ie7&rlz=1I7GGLR
0774デフォルトの名無しさん
2008/05/14(水) 02:04:38できるよ。
以上。
↓次どうぞ
0775デフォルトの名無しさん
2008/05/14(水) 11:51:19シート上の図(Shape)を、すべて削除する方法を教えて下さい。
よろしくお願いします。
0776デフォルトの名無しさん
2008/05/14(水) 13:26:15これって、フォームとかと一緒にまとめられないの?
0777番組の途中ですが名無しです
2008/05/14(水) 15:48:05forループで↓をActiveSheet.Shapes.Count分回せばいいかも
ActiveSheet.Shapes(i).Select
Selection.Delete
※iはループカウンタ
0778デフォルトの名無しさん
2008/05/14(水) 15:53:29ActiveSheet.Shapes.Delete
0779775
2008/05/14(水) 18:14:41レスありがとうございます。
0780デフォルトの名無しさん
2008/05/14(水) 19:09:02ふーん、いろいろあんだねぇ
0781デフォルトの名無しさん
2008/05/14(水) 22:20:07目的は、ある外部のデーターベースから、
ブックを開いたときに、選択した情報を効率的に
集めてくるみたいなものをつくりたいのですが。
因みにプログラムの経験はVBAが2週間で、他の言語は知りません。
0782デフォルトの名無しさん
2008/05/14(水) 22:47:08ごめん。まったく何を言ってるのかわからない。
みんなはわかるの?
0783デフォルトの名無しさん
2008/05/14(水) 22:48:32仕事に役立つ Excel & Access データベース連携テクニック Softbank
といったものがあるけど、
これはある程度VBAを知っている事が前提なんで、やはり最初に入門を中心に勉強してからの方が良いんじゃね?
0784デフォルトの名無しさん
2008/05/14(水) 22:52:55ExcelのVBAなんか覚えるよりデータベースの方が役に立つだろう?
0785781
2008/05/14(水) 22:57:39>>783さんの挙げてくださった書籍の姉妹本だと思います。
しかし、Dimが出てこなかったりして、結局出来るようになったことは
セルに色をつけたり足し算したりシートの名前を変えたりといったレベルです。
もっとレベルの高いVBAを勉強したいです。
わかりにくくて申し訳ございません。
0786デフォルトの名無しさん
2008/05/14(水) 23:01:30仕事で大量のデーターを扱うので、データーベースはきちんと扱えるようになりたいです。
SQLとかを勉強したほうがいいのでしょうか?
仕事とは別にVBAを打てるようになって、ゲームとか作りたいです。
現時点のレベルは低すぎるわけなのですが・・・
0787デフォルトの名無しさん
2008/05/14(水) 23:09:09仕事はデータベース
VBAは趣味のゲームで
0788781
2008/05/14(水) 23:12:13すいません、ド素人なのでよくわからないのですが
データーベースという、VBAみたいなジャンルがあるのでしょうか?
周りにパソコンに詳しい人がいなくて困っています。
セクハラ酷いし。あぁ会社行きたくない・・・
0789デフォルトの名無しさん
2008/05/14(水) 23:14:35自分でデーターベースからブックを開くと言ってたじゃないか。
0790デフォルトの名無しさん
2008/05/14(水) 23:25:06vbaに関してはエクセルのヘルプよく読め
0791デフォルトの名無しさん
2008/05/14(水) 23:26:110792デフォルトの名無しさん
2008/05/14(水) 23:44:050793781
2008/05/14(水) 23:45:46親切に答えてくれた方々、ほんとうにありがとうございました。
0794デフォルトの名無しさん
2008/05/14(水) 23:48:05しかしVBAの正しい利用方法だ。
0795デフォルトの名無しさん
2008/05/15(木) 07:44:28お前、馬鹿
0796デフォルトの名無しさん
2008/05/15(木) 07:55:47年上のお姉さんに当てられたり、美少女の後輩にまさぐられたりする職場なんですね、俺と変わってくれ
0797デフォルトの名無しさん
2008/05/15(木) 08:00:39ExcelVBAより先にAccessのクエリー/マクロ/レポートを覚えた方が金になるぞ
0798デフォルトの名無しさん
2008/05/15(木) 08:15:170799デフォルトの名無しさん
2008/05/15(木) 09:46:13EXCEL2003(XP)で作成したマクロを動かすと動作が異なっています。
<コード>
Range("A5").Select
ActiveSheet.Pictures.Insert( _
"D:\abc\pic1.JPG").Select
Range("A21").Select
ActiveSheet.Pictures.Insert( _
"D:\abc\pic2.jpg").Select
<現象>
(1)Vistaでは、pic2の画像が、A21の個所でなく、A5の個所に挿入されます
(pic1の上に重なって)
(2)Vistaで、セルを選択して、画像挿入する操作をマクロ記録すると
Range("A21").Selectは記録されてますが、
ActiveSheet.Pictures.Insert("D:\abc\pic2.jpg").Selectが
記録されていません。
上記プログラムで、pic2をA21の箇所に挿入できるようにするには
どうすれば良いのでしょうか。
よろしくお願いします。
0800番組の途中ですが名無しです
2008/05/15(木) 14:03:070801デフォルトの名無しさん
2008/05/15(木) 16:56:49スクロールの問題……じゃないよな
0802デフォルトの名無しさん
2008/05/16(金) 15:32:49シート上に
ActiveSheet.OLEObjects.Add(ClassType:="Forms.CheckBox.1")
で生成したチェックボックスのみを削除するプログラムを
実行すると
アプリケーション定義またはオブジェクトの定義エラーです
というメッセージが出ます。 s.FormControlType のところで
エラーが出ているのですが、どうやったら動くようになるのでしょうか?
Dim s As Shape
For Each s In Sheets("sheet1").Shapes
If s.Type = msoOLEControlObject Then
If s.FormControlType = xlCheckBox Then
s.Delete
End If
End If
Next
0803799
2008/05/16(金) 17:00:43レスありがとうございます。
スクロールの問題ではありません。
(1)の現象になったので、
マクロと同じ操作をして、マクロ記録してみたら
(2)になりました。
0804デフォルトの名無しさん
2008/05/16(金) 18:30:33WorkSheet.Shapes.AddPicture(...) かな?
試してないけど
ActiveSheet.Pictures.Insert( "D:\abc\pic1.JPG").Top = Range("A5").Top
ActiveSheet.Pictures.Insert( "D:\abc\pic2.jpg").Top = Range("A21").Top
0805799
2008/05/16(金) 20:29:24レスありがとうございます。
うまくいきました。
0806デフォルトの名無しさん
2008/05/16(金) 20:37:240.002354なら゙0.00235゙から0.00001刻みでグラフの軸に表示したいのです。
何かよい方法はありませんでしょうか?
0807799
2008/05/16(金) 20:47:07別質問ですけど、
804で挿入したオブジェクトのnameは、
どのようにすれば取得できるのでしょうか。
0808デフォルトの名無しさん
2008/05/16(金) 23:37:411つのプロシージャ内でループ演算をしつつ、他のプロシージャを実行して
変数を変更したいと考えています。
複数のプロシージャを並列処理できる方法はないのでしょうか?
0809デフォルトの名無しさん
2008/05/17(土) 00:12:29Win32APIのスレッドも使えるかもねー
0810デフォルトの名無しさん
2008/05/17(土) 01:15:28excel2000+winXpで開発してるんですが、
処理を走らせるとメモリの使用率がたまる一方で
解放されている気配を感じません。
しまいにはメモリが足りませんとエラーになり
落ちてしまいます。
助けて!!1
DAO3.6使ってるんですが関係しますかね?
メモリを解放する方法ってありますか??
0811デフォルトの名無しさん
2008/05/17(土) 06:59:32DoEvent とか
動的配列を使ってるなら必ずeraseするとか
0812デフォルトの名無しさん
2008/05/17(土) 08:39:43刻み幅等を計算する方法を知りたいというのが主旨かな?
30125の常用対数は、log(30125)/log(10) =4.47892705558292
切り上げて、5
上位3ケタだけ取るので、刻み幅は、10^(5-3)=100
切り上げは、round(x-0.5)+1 という感じかな。
0813デフォルトの名無しさん
2008/05/17(土) 10:29:50古い環境が無いんで試せてないけど
Dim Pic1 As Picture
Dim Pic2 As Picutre
Set Pic1 = ActiveSheet.Pictures.Insert( "D:\abc\pic1.JPG")
Pic1.Top = Range("A5").Top
Range("A4").Value = Pic1.Name
Set Pic2 = ActiveSheet.Pictures.Insert( "D:\abc\pic2.jpg")
Pic2.Top = Range("A21").Top
Range("A20").Value = Pic2.Name
0814デフォルトの名無しさん
2008/05/17(土) 14:03:34複数のExcelインスタンスを起こして、マルチプロセスでやれば?
これならWin32APIなんか使わずにできるが
0815デフォルトの名無しさん
2008/05/17(土) 19:17:010816デフォルトの名無しさん
2008/05/18(日) 14:10:29灰次
0817デフォルトの名無しさん
2008/05/18(日) 23:31:42マクロではどのように記述すればNORMDISTは使えるのでしょうか?
誰か教えてください
0818デフォルトの名無しさん
2008/05/19(月) 11:05:13方法がわかりません。ヒントだけでもいいのでお願いします。
0819デフォルトの名無しさん
2008/05/19(月) 16:39:14classモジュール使えばできるよ
0820デフォルトの名無しさん
2008/05/19(月) 16:46:45ヘルプの例で言えば、
42 対象となる値
40 分布の算術平均(相加平均)
1.5 分布の標準偏差
WorksheetFunction.NormDist(42, 40, 1.5, True)
で、いいんじゃない?
0821デフォルトの名無しさん
2008/05/19(月) 20:24:01コマンドボタンで、
Workbook Open "C:\-.xls"
Worksheets("a").Select
Range("A20").Select
と入力し別ファイルのシートのセルを選択したいのですが、
どのように直せばいいか、教えていただきたいです。
よろしくお願いします。
0822デフォルトの名無しさん
2008/05/19(月) 21:26:10ちゃんと目的のbookが開いているなら、シート名「a」のシートがあれば問題ないよ
0823デフォルトの名無しさん
2008/05/19(月) 21:55:45シート上に置いたコントロールツールボックスのコマンドボタンならそんなんでまともに動くわけねーよ。
シートや範囲をちゃんとブックから明示しないと。
0825デフォルトの名無しさん
2008/05/20(火) 20:21:390826デフォルトの名無しさん
2008/05/20(火) 21:28:05Formのコマンドボタンなら>>821でも動くだろうが、どこに書いても同じように動くコードを書かんとね。
0827デフォルトの名無しさん
2008/05/20(火) 23:30:47どこに書いても同じように動くコードを書く必要はない
コードを書いたクラスでまともに動けば問題ない
0828デフォルトの名無しさん
2008/05/21(水) 00:21:17デジタル署名付のVBAプロジェクトで、
ブックオープン時にオラクル接続をし、
オートシェイプで線を引くという処理をしております。
処理後、シートを見るとオートシェイプで描いた線の色がありませんでした。
プリンタで出力すると、線が描かれております。
原因と対処法を教えてください
【OS】windows XP pro
【EXCEL】2003
【処理内容】
Dim OraSession As Object
Dim OraDatabase As Object
Set OraSession = CreateObject("OracleInProcServer.XOraSession")
Set OraDatabase = OraSession.OpenDatabase("TNS", "USER/PASS", ORADB_DEFAULT)
Set OraSession = Nothing
Set OraDatabase = Nothing
ActiveSheet.Shapes.AddLine(98.25, 151.5, 150#, 159.75).Select
といったかんじです
0829デフォルトの名無しさん
2008/05/21(水) 01:40:10オラクル関係なくね?
接続して閉じてるだけだろ?
それとも、オラクルに繋がなければ問題は解消されるの?
0831826
2008/05/21(水) 07:46:16まどうでもよい。
0832デフォルトの名無しさん
2008/05/21(水) 07:59:090833デフォルトの名無しさん
2008/05/21(水) 17:42:10特定のディレクトリの直下にあるファイル(複数)のファイル名を
全て取得する方法を教えて下さい。
よろしくお願いします。
0834デフォルトの名無しさん
2008/05/21(水) 17:49:26ちょこちょこ質問掲示板見てると週に1回は遭遇する質問
ググれば腐るほどコードがある
個人的にはfilesystemobjectを使うのが一番効率いいと思う
0835833
2008/05/21(水) 19:20:12レスありがとうございます。
失礼いたしました。
0836デフォルトの名無しさん
2008/05/21(水) 21:22:28速度が落ちたりするから困る。
あと、ワイルドカードが無いのはどーゆーことだ。
0837デフォルトの名無しさん
2008/05/21(水) 23:21:02独り言はチラシの裏に書け
0838デフォルトの名無しさん
2008/05/22(木) 06:44:14伴う更新もかなりの直近まで自動的に更新してくれる中々の
優れモンだったという記憶が....
Kernel32.DLL のAPIを使って自分でクエリした場合は、
ファイル数が多く、激しく更新されるような場合は、取得情報と
実態の間に食い違いが発生してユーザーはパニくるのがオチなんだが
(これもチラ裏に書くべきだったか)
0839デフォルトの名無しさん
2008/05/22(木) 18:21:060840デフォルトの名無しさん
2008/05/22(木) 21:25:320841デフォルトの名無しさん
2008/05/23(金) 13:23:120842デフォルトの名無しさん
2008/05/23(金) 23:07:41excel:2007
初めて質問します。お願いします。
・データ用のシート
・処理用シート
の二つを用意します。
データ用シート
店舗→ A B C
商品↓
りんご 100 200 300
みかん 10 20 30
めろん 1 2 3
処理用シートのA1,B1のセルに店舗と商品を書き込むと、データ用のシートを参照して、
そのシートに書かれた数値(例えば、上記の表の「A店(=A1)」の「みかん=B1」だと「100」)が、
処理用シートのC1(「=100」が)に入るようにしたいです。
店舗、商品は任意で追加していきたいので、データ用シートの列、行を検索していくようなやり方がいいのでは、
と考えています。
調べて、VLOOKUP関数を使えば…、というところまで来たのですが、二点のセルの値を見て、
表から一つの値を出力する、というところがわかりません。
何卒、ご指導の方、お願いします。
0843デフォルトの名無しさん
2008/05/24(土) 00:01:34VBAに関係ないと思うのだが。
vlookup以外にもlookupやmatchもあるんだから何とかなるだろそれくらい。
0844デフォルトの名無しさん
2008/05/24(土) 00:16:49あのな、上から目線もいいけどここはVBAに詳しくない奴らが
何をどうやったらいいかを聞きにきてるスレなわけ。
その手ほどきをしてやった上でそういうこと言うならいいけど、
回答も示さずにそういうこと言うのは荒らしとかわんねーんだよ。
こたえる気が無いなら質問スレから消えろよカスが。
↓じゃ、模範的回答を頼む
0845釣られてみる
2008/05/24(土) 00:26:300846デフォルトの名無しさん
2008/05/24(土) 03:07:260847デフォルトの名無しさん
2008/05/24(土) 03:09:22こいつ頭悪そうだな(ゲラゲラ
0848デフォルトの名無しさん
2008/05/24(土) 07:33:50いろんなやり方があると思うけど、私がスマートだと思うのを提案します。
データ用シートをこんなふうにする。
ID 店舗 商品 値段
Aりんご A りんご 100
Aみかん A みかん 10
Aめろん A めろん 1
Bりんご B りんご 200
Bみかん B みかん 20
Bめろん B めろん 2
Cりんご C りんご 300
Cみかん C みかん 30
Cめろん C めろん 3
IDの列は数式で作る。Aりんごのところに
=B2&C2
としてオートフィルで。
0849デフォルトの名無しさん
2008/05/24(土) 07:53:02処理用シートで
C1には
=A1&B1
D1には
データ用シートはSheet1にあるなら
=VLOOKUP(C1,Sheet1!A:D,4,FALSE)
としてできあがり。
0850デフォルトの名無しさん
2008/05/24(土) 08:12:05C1に
=index(「データの範囲」,match(B1,「商品名の範囲」),match(A1,「店舗名の範囲」))
と入れる
これVBAじゃないから、次からはEXCEL総合相談スレの方へ行ってくれ
0851デフォルトの名無しさん
2008/05/24(土) 10:55:08Module1で宣言したパブリック変数をThisWorkbookで参照する事はできないのでしょうか。
状況を説明しますと、nullpo.xlsというマスターファイルがあります。
その中のModule1で処理を実行すると、public変数をインクリメントします。
"名前を付けて保存時"の保存ダイアログで、あらかじめ表示されるファイル名に
そのpublic変数を出したいのですがうまくいきませんでした…
0852851
2008/05/24(土) 13:22:46みなさんの力を貸して下さい。
言い忘れましたがわたしは女です。
0853デフォルトの名無しさん
2008/05/24(土) 13:26:25俺が何でも答えますよ
もうちょっとしたら家に着くから待っててね
ところで今日は帰ったらどうするの?
汗かいちゃったってシャワーでも浴びるのかな?かな?
0854851
2008/05/24(土) 13:34:41ありがとうございます。
彼氏と待ち合わせしてるんです。
0855デフォルトの名無しさん
2008/05/24(土) 13:39:32VBの種類が多すぎてどれを勉強したらいいのかわかりませんでした。
VBAのためにVBを勉強するには、どのVBを勉強すればいいのでしょうか?
0856853
2008/05/24(土) 13:41:43自分でどうにかするんだな
0857853
2008/05/24(土) 13:42:330858851
2008/05/24(土) 13:59:41他スレで質問することにします。
すみませんでした。
0859側近中の側近 ◆0351148456
2008/05/24(土) 15:22:18(っ´▽`)っ
独身の女の子には優しいのね。最低☆
0860側近中の側近 ◆0351148456
2008/05/24(土) 15:23:00(っ´▽`)っ
VBAならVB6.0だね。
0861デフォルトの名無しさん
2008/05/24(土) 15:25:38手のひら返しワロス
0862デフォルトの名無しさん
2008/05/24(土) 15:29:18そのpublic変数値を返す、public関数でも作れば?
つか、ダイアログに値をいれて有効にする処理が出来てないだけの気がするが…
0863855
2008/05/24(土) 15:29:35ありがとうございます。
0864デフォルトの名無しさん
2008/05/24(土) 15:39:20VB6.0やVB.NETをVBAを使えない人に勧めちゃらめどちらも超ベテラン向けだよ
VBScript位しか残らないけど、VBAとはちょっと合わないかも知れないね。
やっぱしVBAはVBAで覚えるしかないのかな(鬱
0865デフォルトの名無しさん
2008/05/24(土) 16:18:520866デフォルトの名無しさん
2008/05/24(土) 21:16:49商品と店舗の組み合わせが疎であるなら>>848の方法
組み合わせが密であるなら>>850の方法がいいだろうね。
ところで解決したのかどうか反応がほしいもんだね。
コミュニケーションしようや。
0867デフォルトの名無しさん
2008/05/24(土) 21:25:26これほんとにその通り。
なんでVBAを覚えるためにVBを覚えたいなんて言うのかな。
VBを覚えたいんだって素直に言えばいいのに。
0868デフォルトの名無しさん
2008/05/24(土) 21:29:230869デフォルトの名無しさん
2008/05/24(土) 21:38:170870デフォルトの名無しさん
2008/05/24(土) 21:46:290871デフォルトの名無しさん
2008/05/24(土) 21:47:130872デフォルトの名無しさん
2008/05/24(土) 22:46:45選んで加えるVBAをうちたいんですが、上手くいきません。
for a = 1 to 100
m = cells(3 , 3)
b = cells(1 + k + a , 1 )
k = 1
s=1
do while s =< m
if b <>"#na n/a" then
b = b + cells(1 + k + a + s , 1)
k = k + 1
s = s + 1
else
k = k + 1
loop
next
いまこんな感じで打ってるのですが、 if b <>"#na n/a" then
のところで止まってしまいます。
どこがおかしいのでしょうか?
また、もっといい方法はありますか?
0873デフォルトの名無しさん
2008/05/24(土) 23:21:29「数字が入ってるセル」なら条件をb≧0にすれば?
0874デフォルトの名無しさん
2008/05/24(土) 23:33:330875デフォルトの名無しさん
2008/05/24(土) 23:38:47あと、b = cells(1 + k + a , 1 )の部分、1回目の処理でkの値が判らない。
0876デフォルトの名無しさん
2008/05/24(土) 23:39:42msgbox "zzz"
abcマクロの完了の後に、ダイヤログボックスにzzzを表示したいのに、
即行でzzzが表示されてしまう。
同期をするようにするには引数か何かを入れるのでしょうか?
0877デフォルトの名無しさん
2008/05/24(土) 23:40:54なるほど。そういう方法がありましたか。
ありがとうございます。
>>874
負の数は存在しないデータなので、大丈夫だと思います。
エラーがでた原因がわかる方はいらっしゃりましたら、お答えいただきたいです。
0878875
2008/05/24(土) 23:42:230879デフォルトの名無しさん
2008/05/24(土) 23:43:210880872
2008/05/24(土) 23:43:44すいません初心者なもので、いまいち意味不明です。
勉強して理解したいとおもうのですが、参考までにどういった
勉強をすればいいか教えてください。
オススメの本、サイト等等・・・
0881デフォルトの名無しさん
2008/05/24(土) 23:46:56<>"#na n/a"
エラー値でなければ って条件と思っているのであれば間違い。
エラー値かどうかを調べたいのならiserrorを使う
0882872
2008/05/24(土) 23:47:24m = cells(3 , 3)
b = cells(1 + k + a , 1 )
k = 1
s=1
do while s =< m
if b > 0 then
b = b + cells(1 + k + a + s , 1)
k = k + 1
s = s + 1
else
k = k + 1
end if
loop
next
これで大丈夫でしょうか?
0883デフォルトの名無しさん
2008/05/24(土) 23:48:51そういうことでしたか。
iserrorという存在を知りませんでした。
勉強不足でした。
ありがとうございます。
0884デフォルトの名無しさん
2008/05/24(土) 23:53:46これエラーなんか出ないよ
意図したとおりには動かないかもしれないけど
0885デフォルトの名無しさん
2008/05/24(土) 23:57:29for a = 1 to 100
m = cells(3 , 3)
b = cells(1 + k + a , 1 )
k = 1
s=1
do while s =< m
if cells(1+k+a+s-1 > 0 then
b = b + cells(1 + k + a + s , 1)
k = k + 1
s = s + 1
else
k = k + 1
end if
loop
next
すいませんでした。
0886デフォルトの名無しさん
2008/05/25(日) 00:18:54ちょっと落ち着け
0887デフォルトの名無しさん
2008/05/25(日) 12:04:28どなたかお助けいただけたらうれしいです。
VBAにてシートコピーに要する時間が長くて(10分以上)悩んでおります。
Bookの構成といたしまして標準モジュールに数式文字列を評価するものを
かいてあります。
Function Eval(ByVal expr As String)
Eval = Evaluate(expr)
End Function
・Sheet1には、様々な経理データを入れるようにしてあります。
そこに入れた値などを元にセル名を作るように書いてあります。
例)A1に”1”という値でB1に”2”という値が入っていればA2のセル名を”12”
とします。
・Sheet2には予めセルに=eval(12)の様な数式をいれ評価をしております。
これが1枚のシートに2000くらい数式が入っています。
Sheet1、2ともに特定条件のとき複製を何枚か作ります。
このときすごく時間がかかります。
原因は数式が大量にあるものをコピーすること及びセルに名前をふっているのが原因なのは分かりますが
コピー以外の動作が非常に快調なので変えたくないということとたぶんeval以外での解決策を模索するのはかなり時間を要しそうなのでコピーを何とかする方を選びたいです。
もちろん再計算の停止などはしてあります。
事前に特定条件を作りだしシートを非表示にしておき特定条件のときに表示させるのも
一つの手ではありますが何百枚もシートを隠しておくとファイルサイズがばかでかくなるという
難点もあって躊躇しています。
例えば=eval(@@@@@@)を多く入れたのが原因であれば標準モジュールを何らかの形でいったん無効にすれば早くなるのかとかスクリプトなどを使って別のブックからシートを移動させるなど・・・・他の代替案はありえないでしょうか?
何分わかりづらい質問で申し訳ありませんが、ご回答いただければ幸いです。
よろしくお願いします。
0888デフォルトの名無しさん
2008/05/25(日) 12:11:580889デフォルトの名無しさん
2008/05/25(日) 12:58:210890876
2008/05/25(日) 13:03:06質問する方のレベルのものが下手なレスをつけるのもどうかと思うが、
設問説明に既に回答があるような・・・
経理処理なのでシート数が大量となるのはある程度やむを得ないでしょうが、
それにしても、10分というのはかかりすぎというか、長いですね。
1 object.enablecalculation=falseを設定されていると言うことですが、
必要なシート全てにされているかどうか
2 通常、速度を速める常套手段の
application.screenupdating=false
application.visible=false
application.enableevents=false
で、どうなるか試してみたらいかがでしょう
私の質問は解決しました。
直列処理のはずが、並行処理になったのかとの疑問からでしたので。
0891デフォルトの名無しさん
2008/05/25(日) 16:55:25どこかで見たような質問だな
何でそんなおかしなことするの?
0892デフォルトの名無しさん
2008/05/25(日) 16:59:47http://www.moug.net/faq/viewtopic.php?t=27321
0894デフォルトの名無しさん
2008/05/25(日) 17:05:090895デフォルトの名無しさん
2008/05/25(日) 17:27:39第三者によるコピペの疑い濃厚だな。
しかし、誰もプロファイリングしろというアドバイスしないって、mougってどんだけ素人集団なんだよ
0896デフォルトの名無しさん
2008/05/25(日) 17:30:54だったら、プロファイリングも糞も無いな
0897デフォルトの名無しさん
2008/05/25(日) 18:13:570898デフォルトの名無しさん
2008/05/25(日) 22:50:47荒らしのコピペなら放置
どっちにしても放置だな
0899デフォルトの名無しさん
2008/05/25(日) 23:12:29(1,1) に hoge って文字列が入っていて、VBAの記述内に、
cells(1,1).value = 100 '←これは当然上書きされますが・・・。
のように、変数名として取得して代入が出来たら良いな。と考えております。
なにとぞよろしくお願いします。
0900デフォルトの名無しさん
2008/05/25(日) 23:16:16bbb(1,2,3)
2個の同一の配列があるのですが、この二つが同一であるかの判定について質問させてください。
今は配列長を取得して、forで繰り返してaaa(i) = bbb(i) と1要素ずつ判定しているのですが、
もっとシンプルに、行数を少なく判定する方法はありますでしょうか。アドバイスお願いしま!!!
0901デフォルトの名無しさん
2008/05/25(日) 23:21:29hogeをどこにも使ってないじゃないか。
>>900
原理的に全要素を比較するしか判定のしようがないから、今の方法でいいんじゃない?
0902VBAの初心者
2008/05/26(月) 01:57:42どなたかヒントをいただけないでしょうか。
この表のような規則と二つの数式を入れたいのですがどうやったらいいでしょうか?
よろしくおねがいします。
http://briefcase.yahoo.co.jp/bc/robert_kubica_bmw/vwp2?.tok=bcUvZBbBSBm6GmJ2&.dir=/&.dnm=Book1.xls&.src=bc
0903デフォルトの名無しさん
2008/05/26(月) 02:31:24馬鹿さ加減が似てるんだが。
0904デフォルトの名無しさん
2008/05/26(月) 02:38:500905デフォルトの名無しさん
2008/05/26(月) 06:21:48Common Language Runtime Library を参照設定して
Dim ht As Hashtable
Set ht = New Hashtable
詳しい使い方は
ttp://homepage1.nifty.com/rucio/main/dotnet/shokyu/standard28.htm
別にScripting.Dictionaryでもいいんだけどね。
文字列と添え字のどちらでも変数にアクセスしたいなら
SortedListを使えば可能。
0906デフォルトの名無しさん
2008/05/26(月) 06:37:27joinして比較
0907デフォルトの名無しさん
2008/05/26(月) 07:19:320908デフォルトの名無しさん
2008/05/26(月) 10:41:35プログラム実行中に、ユーザーフォーム上のimageの表示・非表示や、
ラベルのキャプションの変更することは出来ないのでしょうか?
実行中に内容が変更できるオブジェクトはprogressbarのみですか?
0909デフォルトの名無しさん
2008/05/26(月) 18:21:24VBAで、作業用シートを作成して、ソートとか
色々やった後、用が済んだらシートを削除するようなプログラムを作って
いるのですが、
sheets(hoge).delete
の後、必ず「データあるけど削除してOK?」っていうダイアログが出てしまいます。
このダイアログに自動的にYesで答えて、プログラムを中断しないように
出来ないでしょうか。
0910デフォルトの名無しさん
2008/05/26(月) 19:21:360911デフォルトの名無しさん
2008/05/26(月) 19:30:16DisplayAlertsでヘルプ嫁
0912デフォルトの名無しさん
2008/05/26(月) 20:19:11UserForm1.Label1.Caption = "testtest"
表示・非表示なら多分 〜.visible = true とか false とかで逝けるんじゃね?
0913デフォルトの名無しさん
2008/05/26(月) 21:08:10ありがとうございます!
できました。
>>912
プログラムが走っている最中は、フォームの画面更新が
行われないようで、それらが効かんです(T-T
0914デフォルトの名無しさん
2008/05/26(月) 21:36:250915デフォルトの名無しさん
2008/05/26(月) 22:32:05ループにDoEvents
0916デフォルトの名無しさん
2008/05/26(月) 22:38:570917デフォルトの名無しさん
2008/05/26(月) 23:43:01新しいシートを作成→そのシートにスクリプトやイベントを埋め込む
を自動でやるにはどうしたらよいですか?
もちろん埋め込みたいスクリプト等は事前に作成しておくものとします。
どうすれば、それを新しいシートに埋め込む操作ができますか?
お手数をおかけします。よろしくお願いいたします。
0918デフォルトの名無しさん
2008/05/27(火) 00:04:19Workbookオブジェクトにどんなイベントがあるか調べてそれをググれ
2. 今は亡き、石井勝氏のありがたいページを熟読する(合掌)
ttp://www.morijp.com/masarl/homepage3.nifty.com/masarl/article/excel-decorator.html
3. ここまでで大抵の問題は解決するはずだが、それでも足りない場合は、動的にコードを追加しろ
vbcomponetでググれ
0919デフォルトの名無しさん
2008/05/27(火) 00:08:53マクロの信頼性とは別に、「Visual Basicプロジェクトへのアクセスを信頼する」という設定をしなければならない。
0920デフォルトの名無しさん
2008/05/27(火) 00:37:37・Class1を作って、Public WithEvents sh As WorkSheetを追加
・ThisWorkBookのモジュールに、Dim o As Class1を追加
・ThisWorkBookのWorkbook_SheetActivateで、
・Set o = New Class1
・Set o.sh = sh
・Class1のsh_SelectionChangeで、
・MsgBox Target.Parent.Name & "!" & Target.Address
似たような感じで、各シートのモジュールにコードを追加することなく、イベントハンドらを
実装できる。あとは、Class1のo.shやら、ActiveSheetやらで、各シートのモジュール外に
コードを実装しろ。シートごとに違う処理をする場合は、sh.Nameとかで振り分けろ。
0921デフォルトの名無しさん
2008/05/27(火) 00:59:11新規に埋め込まなくても、雛形シートをコピーした新しいブックを作って解決
0922デフォルトの名無しさん
2008/05/27(火) 01:23:290923デフォルトの名無しさん
2008/05/27(火) 01:26:59ああ、それさっきコンパイルしたら「オブジェクトが小さすぎます」ってコンパイルエラー出たよ
0924デフォルトの名無しさん
2008/05/27(火) 08:15:42For i =1 to 20
Worksheet("Sheet1").cells(1,i).name = "mid"&cells("B",i).value
Next i
End if
Next
0925デフォルトの名無しさん
2008/05/27(火) 09:05:37Worksheet("Sheet1").cells(1,i).Name.Name
0926913
2008/05/27(火) 09:18:33ありがとうございます。
Do Events を試して見ます!
0927デフォルトの名無しさん
2008/05/27(火) 10:09:15どすえ。
0928デフォルトの名無しさん
2008/05/27(火) 11:04:14中身の上下スクロールをマウスのホイールに連動させることは
出来ないのでしょうか?
ググってみたのですが、分かりませんでした。
0929917
2008/05/27(火) 15:59:44ありがとうございます!勉強になりました。
とりあえず一番簡単な921さんの方法を試してみますね。
0930デフォルトの名無しさん
2008/05/27(火) 16:02:04ら抜き言葉でもブチ切れそうなのにさぁ、どうしてわざわざ”な”を”ん”に
置き換えるんだよ最近のゆとりどもは。書いてて違和感ねーのか糞が。
0931デフォルトの名無しさん
2008/05/27(火) 16:06:07基地外乙w
単にローマ字入力でAが抜けたTypoだろ
0932930
2008/05/27(火) 17:00:52いや、「分からんくて」「変わらんくて」「倒せんくて」
とか書き込む奴はかなり多いぞ。
そういう言い回しが流行ってんのか?ってほど。
年齢層の低いスレ覗いていないと分からんくても
仕方ないけど…
>>932
>分からんくても
死ね
0934デフォルトの名無しさん
2008/05/27(火) 18:43:46>>930はもう少し視野を広げてみてはどう?
0935デフォルトの名無しさん
2008/05/27(火) 19:56:10ExcelBVAのテクニックは大体わかります。
しかし、「Excelを起動するとVB?が起動し、ユーザーフォームとExcelが分離している状態」
のプログラム技術を身につけたいと思っています。
これを会得するには、やっぱりVBの知識と多大なる努力が必要なんでしょうか?
0936デフォルトの名無しさん
2008/05/27(火) 20:19:11だがそんなことにマジ切れすとか、情緒不安定なんじゃね?
0937デフォルトの名無しさん
2008/05/27(火) 20:49:46VBAでできる。
どれくらいの努力が必要かは、君のセンスと知力に依存するので誰も答えられない。
0938デフォルトの名無しさん
2008/05/27(火) 20:54:29できない私が言うのもなんだが、そんなことできて何がいいの?
0939デフォルトの名無しさん
2008/05/27(火) 20:55:50使いづらいんじゃないすか。
>>936
「マジ切れす」?また怒られるぞ!
0940デフォルトの名無しさん
2008/05/27(火) 22:31:35うおお、マジですか、VBAでできるの?
怒られそうだがさらに質問。
どうやんの?メニューバーとかどーみてもVBっぽかったけど。
0941デフォルトの名無しさん
2008/05/27(火) 22:34:41>ExcelBVAのテクニックは
>ExcelBVA
ExcelVBAを知らないんだからしょうがないよな
0942デフォルトの名無しさん
2008/05/27(火) 22:39:26' Excel本体は隠す
Private Sub UserForm_Initialize()
Application.Visible = False
End Sub
やりたいのはこういう事?
0943デフォルトの名無しさん
2008/05/27(火) 22:51:25構築したいという事でしょ。
0944デフォルトの名無しさん
2008/05/27(火) 22:53:16関西人を馬鹿にしとるんかわれぃ!
0945デフォルトの名無しさん
2008/05/27(火) 23:06:590946デフォルトの名無しさん
2008/05/27(火) 23:07:230947デフォルトの名無しさん
2008/05/28(水) 15:57:23リストボックスで選択した項目を任意のアクティブセルに反映させる時、
反映させたくないセルに反映させないようにするにはどうしたら良いでしょうか?
例えば、セル"A1"には反映させたくないけど、"A1"をアクティブにしたまま
リストボックスにて項目を選択して反映させてしまうのを防ぎたいのですが。
0948デフォルトの名無しさん
2008/05/28(水) 16:26:21オフセットかなんか使って条件分岐するしかないのでは?
B1に何か入力がある時は、A1には入れないみたいな感じで。
Sub nnn()
If Trim(ActiveCell.Offset(0, 1).Value) = "" Then
ActiveCell.Value = Userform1.ListBox1.value
Else: Exit Sub
End If
End Sub
0949デフォルトの名無しさん
2008/05/28(水) 20:07:47試したけどなかなか理想した感じにできなかったので、
ロック設定で我慢します・・
0950デフォルトの名無しさん
2008/05/28(水) 20:27:42そうです。今の考えでは、
�@フォームにあるボタンを押すとExcelが起動して、
�A入力用のフォームに値を入力すると、
�Bクチャクチャっと値が返されて、(大量の関数的な部分があるので、慣れたExcelのセルでやりたい。)
�CCSV形式で出力されて、
�D違うソフトにそれを読み込ませる、またはVBだったらそのソフトを外部から操作してやってみたい。
(そのソフトの仕様は全然わからんのだが。)
�Dが無ければVBAでやれると思うんだが、�Aの時に、ExcelVBAだと俺の知識ではマクロ実行中は
任意のセル編集ができない。
やっぱVBじゃないとダメ??
0951デフォルトの名無しさん
2008/05/28(水) 20:28:23そうです。今の考えでは、
�@フォームにあるボタンを押すとExcelが起動して、
�A入力用のフォームに値を入力すると、
�Bクチャクチャっと値が返されて、(大量の関数的な部分があるので、慣れたExcelのセルでやりたい。)
�CCSV形式で出力されて、
�D違うソフトにそれを読み込ませる、またはVBだったらそのソフトを外部から操作してやってみたい。
(そのソフトの仕様は全然わからんのだが。)
�Dが無ければVBAでやれると思うんだが、�Aの時に、ExcelVBAだと俺の知識ではマクロ実行中は
任意のセル編集ができない。
やっぱVBじゃないとダメ??
0952デフォルトの名無しさん
2008/05/28(水) 21:47:53それって、100%ExcelVBAのような気がするけど・・・
0953デフォルトの名無しさん
2008/05/29(木) 09:23:10VBAで調べるのは不可能ですか。
0954デフォルトの名無しさん
2008/05/29(木) 09:59:49StaticステートメントをDefineのように使うのはおかしくないですか?
0955デフォルトの名無しさん
2008/05/29(木) 11:02:16背景色が変わってたんだけどなんで?
俺excel2000
友excel2002
0956デフォルトの名無しさん
2008/05/29(木) 14:31:16二種類あって、おそらく後者を適用しているのでしょう。
0957デフォルトの名無しさん
2008/05/29(木) 17:38:310958デフォルトの名無しさん
2008/05/29(木) 20:44:31CSVファイルをエクセルファイルに変換したいのですが、特定の列だけを
文字列として処理を行いたいのです。
また、変換元のCSVファイルの指定をBATファイルを利用したいのですが、
よい手段がわかりませんでした。
なにかいい方法はありませんか??
0959デフォルトの名無しさん
2008/05/29(木) 21:15:00http://pc11.2ch.net/test/read.cgi/bsoft/1211605143/
0960デフォルトの名無しさん
2008/05/29(木) 22:26:56何かいい方法ありますか?
今はエディタから全コピーしてVBA側に全ペーストしてます;;
0961デフォルトの名無しさん
2008/05/29(木) 22:52:06VBA使ってみてビビった。あれはVBAが
元始にして究極のエディタだと思うんだが。
関数の保管とかしてくれるしもう最高。
0962デフォルトの名無しさん
2008/05/29(木) 22:52:26○補完
0963デフォルトの名無しさん
2008/05/30(金) 00:49:04UserFormにTextBoxを貼り付けてTextBox1を変数として使うのもよいのですが
内部で使う変数なので表示はしたくないです。
何をやりたいかというと、このUserFormでOKボタンを押されたことをBOOL変数に記録し、
そして呼び出し元で、OKが押されたかどうか判断したいです。
つまりMFCで言えば
CDialog dlg;
if(dlg.DoModal() == IDOK)
{
UserFormObj.Show
IF UserFormObj.bOk = TRUE THEN
処理
END IF
見たいな事をしたいです。
0964デフォルトの名無しさん
2008/05/30(金) 00:50:38UserFormにTextBoxを貼り付けてTextBox1を変数として使うのもよいのですが
内部で使う変数なので表示はしたくないです。
何をやりたいかというと、このUserFormでOKボタンを押されたことをBOOL変数に記録し、
そして呼び出し元で、OKが押されたかどうか判断したいです。
つまりMFCで言えば
CDialog dlg;
if(dlg.DoModal() == IDOK) 処理
みたいな。
VBAだと
UserFormObj.Show
IF UserFormObj.bOk = TRUE THEN
処理
END IF
って感じだと思ってます。
0965デフォルトの名無しさん
2008/05/30(金) 00:51:280966デフォルトの名無しさん
2008/05/30(金) 00:53:350967デフォルトの名無しさん
2008/05/30(金) 00:54:08UserFormにOKプロパティを作る
又は、手軽に標準モジュールにPublic変数を宣言する
0968デフォルトの名無しさん
2008/05/30(金) 00:54:100969デフォルトの名無しさん
2008/05/30(金) 00:56:33ありがとうございます。
OKプロパティーというのがあるのですね。勉強になります。
#今日は書き込みがやたらエラーになる(:_:)。スレ汚しすみません。
0970デフォルトの名無しさん
2008/05/30(金) 00:59:35ごめん、UserFormにOKプロパティ作っても、UserFormが閉じたら変数破棄されるからダメだね
Public変数でどうぞ
0971デフォルトの名無しさん
2008/05/30(金) 14:30:19Private Declare Function DataRead Lib "ExcelVBA.dll" Alias "_CareerDataRead@4" (strFileName As String) As String・・・�@
だと「DLLが見つかりません」と出てきます。そんで、Dllのパスをフルパスにしてやると動作するんですが、そすると他のPCで
パスがないので「Dllが見つかりません。」と出てきちゃいます。
できれば、ブックのあるフォルダにDLLをおいて�@のように呼び出したいのですが、無理なのでしょうか?
0972デフォルトの名無しさん
2008/05/30(金) 14:46:15つ環境変数
0973デフォルトの名無しさん
2008/05/31(土) 10:10:45VBAから実行することは可能でしょうか。
あと、ユーザーフォームにハイパーリンクを張ることは可能ですか?
0974デフォルトの名無しさん
2008/06/01(日) 01:36:150975デフォルトの名無しさん
2008/06/01(日) 01:46:21内部的なソフトで、アップデート(上書き)したいだけなら
バッチファイルとスタートアップのショートカットを駆使すりゃいいやん
0976デフォルトの名無しさん
2008/06/01(日) 15:16:33オーバロードがどのAppend_数字に対応しているか調べるには
どうすればよい?
0977デフォルトの名無しさん
2008/06/01(日) 18:51:45指定した名前で
CSVファイルで保存する方法ってわかりますか?
0978デフォルトの名無しさん
2008/06/01(日) 19:29:10マクロの記録で出てこないか?
0979デフォルトの名無しさん
2008/06/01(日) 19:37:44使ったことないけど、getsaveasfilename でいいんじゃない?
0980側近中の側近 ◆0351148456
2008/06/01(日) 20:32:46(っ´▽`)っ
Excel2000のVBAでCSV保存すると、
日付型はことごとく文字化けするけどなー☆
0982デフォルトの名無しさん
2008/06/02(月) 10:24:470983デフォルトの名無しさん
2008/06/02(月) 15:11:45普通に読めますが?
0984側近中の側近 ◆0351148456
2008/06/02(月) 20:44:29(っ´▽`)っ
Jan 1 2007とかにならんかね?
0985デフォルトの名無しさん
2008/06/02(月) 20:51:41文字化け?
0986側近中の側近 ◆0351148456
2008/06/02(月) 20:54:18(っ´▽`)っ
これは文字化けじゃないか。
細かいことは気にするな☆
0987デフォルトの名無しさん
2008/06/03(火) 00:06:08ウイルスチェックで引っかかるところを見てみたいだけです。
0988デフォルトの名無しさん
2008/06/03(火) 12:49:33よかったらご教授願います。多分とても簡単な事だと思うのですが…超初心者です。
OSはXP、Excel2003です。
ファイルAの内容を、カメラ機能を使って、ファイルBに取り込もうとしています。
ファイルAのシート名は1〜31までの整数です。(1日1シート)
ファイルB上でマクロを実行した時、実行日に相当するシートの範囲を読むようにしたいのですが、以下のマクロでは、エラーになってしまいます。手直しして頂けないでしょうか。宜しくお願いします。
Sub カメラのリンクを編集()
Dim i As String
i = Day(Date)
ActiveSheet.Shapes("camera").Select
Selection.Formula "='G:\平成20年\[ファイルA.xls]i'!$A$1:$K$60"
End Sub
0989デフォルトの名無しさん
2008/06/03(火) 13:02:37せめてどんなエラーになったか位書こうよ。
あー、シート名が変数i(不適当な名前だw)に入っているのなら、文字列を組み立てないとダメだね。
>988では"i"と言う名前のシートを探そうとしてしまう。
0990デフォルトの名無しさん
2008/06/03(火) 13:03:52○ご教示
0991デフォルトの名無しさん
2008/06/03(火) 14:55:10文字列を組み立てるというアドバイスの元見直しをして、無事完成しました。
スレ違い失礼しました、「ご教示」ありがとうございました。
0992デフォルトの名無しさん
2008/06/03(火) 15:38:510993デフォルトの名無しさん
2008/06/03(火) 18:52:12If ActiveCell.Column = 6 Then
Range("A1:A10").Copy ActiveCell
Else
MsgBox "ここは駄目"
End If
・・・
これだと6列目を先頭としてA1〜A10のセルをコピーでき、
6列目以外は入力不可でmsgboxが出るのですが、
例えば6列目〜10列目を入力可能にするにはどうしたら良いでしょうか?
0994デフォルトの名無しさん
2008/06/03(火) 22:18:12Sheets(2).Shapes.AddLine(Xs, Ys, Xe, Ye).Select
たとえば、こうやって変数で当てて500から520までかけ。次に520から540までかけ
ってやっても線がつながらんのだが。
0995デフォルトの名無しさん
2008/06/04(水) 01:32:55ちゃんとつながるぞ。単位はポイント
Sheets(1).Shapes.AddLine(50, 100, 100, 50).Select
Sheets(1).Shapes.AddLine(100, 50, 150, 100).Select
Sheets(1).Shapes.AddLine(150, 100, 100, 150).Select
Sheets(1).Shapes.AddLine(100, 150, 50, 100).Select
0996デフォルトの名無しさん
2008/06/04(水) 10:34:25「問題が発生したため、Microsoft Excel for Windows を終了します。 ご不便をおかけして申し訳ありません。」
というMicrosoftのエラーになり、Excelが開かなくなってしまいました。
中のモジュールを何とか見る方法はないでしょうか?
0997デフォルトの名無しさん
2008/06/04(水) 20:06:50この文字列から、条件を満たす物を抽出したく考えております。
具体的には、「*」 で囲まれた文字列を抜き出したく考えております。
(「」で囲まれた物以外を削除)
調べてみたのですが、このような処理は可能でしょうか。
可能でありましたらば、教えてくださいませ。よろしくお願いします。
0998デフォルトの名無しさん
2008/06/04(水) 21:23:500999デフォルトの名無しさん
2008/06/04(水) 22:58:25http://pc11.2ch.net/test/read.cgi/tech/1212587819/l50
1000デフォルトの名無しさん
2008/06/04(水) 23:08:39それ以外なら一生不幸
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。