1 名前:デフォルトの名無しさん mailto:sage [2013/03/31(日) 09:29:32.22 ] ExcelのVBAに関する質問スレです ★1 質問テンプレ(雛形)は用意しませんが、OSとExcelのバージョンは必ず書きましょう。 ★2 ExcelのVBA以外の部分に関する質問はNGです。 但し、VBA無しでも出来ることだが、あえてVBAでやりたいって物に関してはOK。 ★3 ExcelのVBE(Visual Basic Editor)を使うとしても、VBAの分野以外に関してはスレ違いです。 VBAとは、『Visual Basic for Applications』の略で Application ├Workbooks |└Workbook | ├Worksheets | |└Worksheet というApplication以下のオブジェクトを、VB言語で操作するものを指します。 例えExcel付属のVBE(Visual Basic Editor)を利用しようとも、このApplication以下のブックやシート、 セルやオブジェクト等を操作するもの以外はVBA分野の話ではないので、ここでは聞かないでください。 ★4 とりあえず、Excelのインスタンスを作らずにVB6で出来ることは全てスレ違いだと思ってください。 ★5 レベルはどうあれ、ここはプログラマ用の板スレです。プログラマとは、自分でプログラムを組み、 コードを書く人の事なので、自分でやるきは全く無く、丸投げしようって人はお断りです。 ヒントを貰えばあとは自力でなんとかしますって人のみどうぞ。 ★6 わからなければとりあえず「マクロの記録」(Alt, T, M, R) 前スレ:Excel VBA 質問スレ Part28 toro.2ch.net/test/read.cgi/tech/1359607536/ 関連スレ:VBAなんでも質問スレ toro.2ch.net/test/read.cgi/tech/1342087380/
32 名前:デフォルトの名無しさん mailto:sage [2013/03/31(日) 23:28:47.45 ] >>31 >>1 ★5
33 名前:デフォルトの名無しさん mailto:sage [2013/03/31(日) 23:31:21.29 ] >>31 全部大文字で書け!
34 名前:デフォルトの名無しさん mailto:sage [2013/03/31(日) 23:33:11.28 ] >>32 書きましたのに、小汚いコードを >>33 どういう事ですか
35 名前:デフォルトの名無しさん mailto:sage [2013/03/31(日) 23:33:51.28 ] >>34 プログラムが汚いw
36 名前:デフォルトの名無しさん mailto:sage [2013/03/31(日) 23:36:49.54 ] >>35 あ、はい
37 名前:デフォルトの名無しさん mailto:sage [2013/03/31(日) 23:41:30.71 ] >>36 書き直せw
38 名前:デフォルトの名無しさん mailto:sage [2013/03/31(日) 23:41:45.78 ] >>37 嫌です
39 名前:デフォルトの名無しさん mailto:sage [2013/03/31(日) 23:46:01.64 ] >>38 as Rangeって何?
40 名前:デフォルトの名無しさん [2013/04/01(月) 00:09:36.90 ] 29に優しくしてやれ。 このスレ、私見だが、女も多い気がするし。29がそうだとはいわないが。 vba = 事務職が主に使う言語 =事務職の大半は女 の構図から連想してみた。
41 名前:デフォルトの名無しさん mailto:sage [2013/04/01(月) 00:12:56.00 ] カワイイなら俺が全部コード書いてやる
42 名前:デフォルトの名無しさん mailto:sage [2013/04/01(月) 00:21:31.25 ] 濡れた
43 名前:デフォルトの名無しさん mailto:sage [2013/04/01(月) 01:15:11.25 ] Dimは先頭にまとめるべき論争の再来になるから嫌だ
44 名前:デフォルトの名無しさん mailto:sage [2013/04/01(月) 01:23:06.28 ] 汚いってそういう事なの?
45 名前:デフォルトの名無しさん mailto:sage [2013/04/01(月) 01:33:18.42 ] 結果を変数に入れてるのがなあ こういうのは関数にするだろ普通は
46 名前:デフォルトの名無しさん mailto:sage [2013/04/01(月) 07:17:44.11 ] いや、これ自体が関数の中身で、 その変数が最後に戻り値設定されていれば別段問題ない。
47 名前:デフォルトの名無しさん mailto:sage [2013/04/01(月) 07:19:54.10 ] >>43 そんな論争が以前あったのか
48 名前:デフォルトの名無しさん mailto:sage [2013/04/01(月) 15:21:01.96 ] 変数や定数の値を別のブックから参照する方法がありましたら教えてください。
49 名前:デフォルトの名無しさん mailto:sage [2013/04/01(月) 16:03:13.89 ] 参照設定
50 名前:デフォルトの名無しさん mailto:sage [2013/04/01(月) 23:00:36.18 ] ものすごく初心者な質問ですみません… Sheet1にあるマクロ実行ボタンを押して、その結果をSheet2に表示する方法を教えてください。 どうしても、Sheet1結果が出るか、新しいシートに出るかしかできないのです。 よろしくお願いします。
51 名前:デフォルトの名無しさん mailto:sage [2013/04/01(月) 23:01:47.07 ] Sheet2.Cells(1,1) = "けっか"
52 名前:デフォルトの名無しさん mailto:sage [2013/04/01(月) 23:02:50.90 ] Sheets("Sheet2").Cells(1,1) = "けっか"
53 名前:デフォルトの名無しさん mailto:sage [2013/04/01(月) 23:23:18.46 ] >>51-52 できましたー! このスピードで答えていただき本当に助かりました! ありがとうございました!
54 名前:デフォルトの名無しさん mailto:sage [2013/04/02(火) 07:52:45.58 ] このスピードで ワロタ
55 名前:デフォルトの名無しさん [2013/04/03(水) 13:19:39.78 ] すみません、自分で考えたのですが解決できずお力を貸して下さい。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Intersect(Target, Range("D4:D10")) Is Nothing Then Exit Sub Select Case Target.Value Case Is = "" Target = "あ" Case Is = "あ" Target = "い" Case Is = "い" Target = "" End Select If Intersect(Target, Range("B4:B10,C4:C10")) Is Nothing Then Exit Sub frmCal.Show End Sub 今の状態では、B4:B10,C4:C10のセルを選んでもカレンダーがでません。助けてください orz
56 名前:デフォルトの名無しさん mailto:sage [2013/04/03(水) 13:27:05.71 ] >>55 「あ」とか「い」が何やってるのかわからないけど、これじゃ駄目なの? if target.column >= 2 and target.column <= 4 and target.row >= 4 and target.row <= 10 then frmcal.show end if
57 名前:デフォルトの名無しさん mailto:sage [2013/04/03(水) 13:36:22.67 ] >>56 解決しました!ネ申
58 名前:デフォルトの名無しさん mailto:sage [2013/04/03(水) 17:22:06.71 ] >>57 > If Intersect(Target, Range("B4:B10,C4:C10")) Is Nothing Then Exit Sub > frmCal.Show > > End Sub の何がまずかったのかな?
59 名前:デフォルトの名無しさん mailto:sage [2013/04/03(水) 17:44:45.55 ] 聞いてる本人に聞くなよw
60 名前:デフォルトの名無しさん mailto:sage [2013/04/03(水) 17:45:59.53 ] >>58 「あ」とか「い」の部分がなくても > If Intersect(Target, Range("D4:D10")) Is Nothing Then Exit Sub があるから絶対にfrmCal.Showは実行されない。 それがまずい。
61 名前:デフォルトの名無しさん mailto:sage [2013/04/03(水) 17:47:05.38 ] 何がまずくてもいいじゃん あきらかにまずいだろ 前スレの何が勉強になったの?とか言ってた奴か?
62 名前:デフォルトの名無しさん mailto:sage [2013/04/03(水) 17:55:32.19 ] 未だに悔しがってるとか、どんだけw
63 名前:デフォルトの名無しさん mailto:sage [2013/04/03(水) 18:10:43.53 ] もういいだろ
64 名前:デフォルトの名無しさん mailto:sage [2013/04/03(水) 18:19:51.44 ] >>61 俺も解らなかったから聞いただけなんだが。 解決したのならどこがまずかったのか理解できたと思うんだけど。
65 名前:デフォルトの名無しさん mailto:sage [2013/04/03(水) 18:23:28.13 ] >>64 なあ、それ本当に知りたいことなのか? 何かお前にプラスになるのか?
66 名前:デフォルトの名無しさん mailto:sage [2013/04/03(水) 18:38:28.63 ] できました!ありがとう。
67 名前:58 mailto:sage [2013/04/03(水) 19:00:44.35 ] >>60 絶対にfrmCal.Showが実行されないという理由がわかりません。
68 名前:デフォルトの名無しさん mailto:sage [2013/04/03(水) 21:46:52.67 ] >>67 D列以外をダブルクリックしたら、最初のIfだけで終わっちゃうじゃん
69 名前:デフォルトの名無しさん mailto:sage [2013/04/03(水) 22:22:57.47 ] ていうか、うちの環境だとちゃんと判定してくれるけど
70 名前:デフォルトの名無しさん mailto:sage [2013/04/03(水) 22:24:35.64 ] >>68 ということは、>>56 のレスをふまえると、最初のIfか最後のIfのRangeプロパティの 範囲のどちらかが間違っていたということですね。 ありがとうございました。
71 名前:デフォルトの名無しさん mailto:sage [2013/04/03(水) 23:06:07.09 ] マジで言ってんのか? もうVBA以前の問題だわ。
72 名前:デフォルトの名無しさん mailto:sage [2013/04/03(水) 23:10:42.52 ] なんで?
73 名前:デフォルトの名無しさん mailto:sage [2013/04/03(水) 23:16:58.74 ] この中で男以外は帰ってください。 残ったなかで女以外は帰ってください。 誰も残ってないんですなぜだかわかりません。 って言ってるようなもんだぞ。
74 名前:デフォルトの名無しさん mailto:sage [2013/04/03(水) 23:29:31.73 ] 性別があやふやな人もいるじゃないですか
75 名前:デフォルトの名無しさん mailto:sage [2013/04/04(木) 01:52:44.23 ] このスレで女以外は帰って下さい。 そして可愛い子以外は帰って下さい。
76 名前:デフォルトの名無しさん mailto:sage [2013/04/04(木) 02:02:32.49 ] おまえって欲望に忠実だな
77 名前:デフォルトの名無しさん mailto:sage [2013/04/04(木) 06:54:09.66 ] デ・ルモンテの法則
78 名前:デフォルトの名無しさん mailto:sage [2013/04/04(木) 13:44:42.40 ] VBAで画面キャプチャ後bmpとかpngで保存するとか可能ですか?
79 名前:デフォルトの名無しさん mailto:sage [2013/04/04(木) 13:54:02.16 ] 可能だよ VB6でのやり方がそのまま使えるのでお好きにどうぞ
80 名前:デフォルトの名無しさん mailto:sage [2013/04/04(木) 14:04:49.81 ] >>79 返信ありがとうございます。 ちょいとサンプルコード探してみたいと思います。
81 名前:デフォルトの名無しさん mailto:sage [2013/04/04(木) 15:05:45.29 ] >>79 探したのですがコードが見当たりません。 何かわかりやすいソースコード御持ちじゃないですか?
82 名前:デフォルトの名無しさん mailto:sage [2013/04/04(木) 15:19:09.45 ] 持ってますお
83 名前:デフォルトの名無しさん mailto:sage [2013/04/04(木) 15:30:25.65 ] >>82 貼り付けお願いできませんか?
84 名前:83 mailto:sage [2013/04/04(木) 15:50:07.05 ] Option Explicit 'ファイル保存ダイアログ Private Function GetSaveFileName() As String Dim sfile As String sfile = Application.GetSaveAsFilename(fileFilter:="JPGファイル (*.jpg), *.jpg") If sfile = "False" Then GetSaveFileName = "" Else GetSaveFileName = sfile End If End Function Private Sub CommandButton1_Click() Dim rg As Range Dim cht As Chart Dim fina As String
85 名前:83 mailto:sage [2013/04/04(木) 15:50:37.62 ] '保存ファイル名を取得 fina = GetSaveFileName If fina <> "" Then '選択範囲を取得 Set rg = Selection '選択した範囲を画像形式でコピー rg.CopyPicture appearance:=xlScreen, Format:=xlPicture '画像貼り付け用の埋め込みグラフを作成 Set cht = ActiveSheet.ChartObjects.Add(0, 0, rg.Width, rg.Height).Chart '埋め込みグラフに貼り付ける cht.Paste 'JPEG形式で保存 cht.Export Filename:=fina, filtername:="JPG" '埋め込みグラフを削除 cht.Parent.Delete End If End Sub
86 名前:83 mailto:sage [2013/04/04(木) 15:51:34.76 ] これを保存ダイアログなしで自動でtestで保存。指定したセル範囲をキャプチャに改造して頂けませんか?
87 名前:デフォルトの名無しさん mailto:sage [2013/04/04(木) 16:09:36.80 ] 甘えすぎ
88 名前:83 mailto:sage [2013/04/04(木) 16:19:20.62 ] >>87 じゃあ範囲は自分で、できたから 保存ダイアログなしで自動でtestで保存。教えてよ
89 名前:デフォルトの名無しさん [2013/04/04(木) 16:38:58.05 ] blog-imgs-46-origin.fc2.com/c/h/a/chaigon/CapWnd.txt ※拡張子が txt となっていますが、実体はZIPファイルです。ダウンロード後、拡張子を zip に書き換えて解凍してください。 ※CapWnd.basファイルをVBAProjectから「ファイルをインポート」すればOK! 使用例1 : 画面全体の画像をファイルに保存する Public Sub SavePictureOfScreen() Dim pic As IPictureDisp Set pic = CaptureScreen() Call SavePicture(pic, "C:\screen.bmp") End Sub 使用例2 : アクティブウィンドウの画像をファイルに保存する ※保存した画像の一部がおかしい不具合あり。原因は調査中。 Public Sub SavePictureOfActiveWindow() Dim pic As IPictureDisp Set pic = CaptureActiveWindow() Call SavePicture(pic, "C:\activewindow.bmp") End Sub
90 名前:デフォルトの名無しさん mailto:sage [2013/04/04(木) 17:42:44.07 ] コード作成依頼に対応するなよ。
91 名前:デフォルトの名無しさん mailto:sage [2013/04/04(木) 17:45:56.00 ] >>83 こういうお願いはこっちにしろ。 VBAなんでも質問スレ toro.2ch.net/test/read.cgi/tech/1342087380/
92 名前:デフォルトの名無しさん mailto:sage [2013/04/04(木) 17:53:44.09 ] >>91 誘導ありがと。修正もここでしてもらると思ってたわ。 失礼しました
93 名前:デフォルトの名無しさん mailto:sage [2013/04/04(木) 18:05:07.89 ] >>92 >>1 ★5を死ぬまで読んでろ。
94 名前:デフォルトの名無しさん mailto:sage [2013/04/04(木) 18:22:45.23 ] >>92 男が書くコードは修正しません
95 名前:デフォルトの名無しさん mailto:sage [2013/04/04(木) 18:45:13.45 ] 私オカマなんたけど
96 名前:デフォルトの名無しさん mailto:sage [2013/04/04(木) 18:51:04.19 ] 事務のパソコンが壊れたため1台新しくwin8を買ったため excelを2003から2010に変えました それでもう一台別のXPパソコンのほうも2010にしたんだけど win8の2010でシート上のactivXのテキストボックスを作って保存したものを XPの2010で開くとなんとテキストボックスのサイズもフォントサイズも一回りでかくなってるという 気持ち悪い現象が起きてます。 なんかバグっぽいけど治す方法とかありましたら教えてください。
97 名前:デフォルトの名無しさん mailto:sage [2013/04/04(木) 20:48:20.40 ] >>96 >>1 ★5
98 名前:デフォルトの名無しさん mailto:sage [2013/04/04(木) 21:09:42.76 ] >>97 >>1
99 名前:デフォルトの名無しさん mailto:sage [2013/04/04(木) 21:52:30.50 ] >>96 星五つだってよ、よかったな!
100 名前:デフォルトの名無しさん mailto:sage [2013/04/04(木) 23:45:58.20 ] >>1 ★5に反発してた子が、>>1 ★5を推す奴はキチガイという印象操作のために >>1 ★5に該当しない案件にまで>>1 ★5を指摘ししてネガキャンしてるのか そこまで見えてくると、逆に>>1 ★5に反発してる子の方が どんだけキチガイで姑息で陰湿で浅学浅慮なのか、ありありと解ってしまうな
101 名前:デフォルトの名無しさん mailto:sage [2013/04/04(木) 23:59:23.84 ] 必死すぎ
102 名前:デフォルトの名無しさん mailto:sage [2013/04/05(金) 00:17:41.10 ] だよな なんでそこまで必死にネガキャンしてまで>>1 ★5を叩こうとするんだろう?
103 名前:デフォルトの名無しさん mailto:sage [2013/04/05(金) 00:18:59.16 ] 白ももが必要以上に手厚いのがウザいんじゃね
104 名前:デフォルトの名無しさん mailto:sage [2013/04/05(金) 00:39:34.51 ] つーか丸投げグレグレしたい奴が、ここを自分に都合の良い場に 改変したくて騒いでるだけだろ
105 名前:デフォルトの名無しさん mailto:sage [2013/04/05(金) 00:41:40.83 ] ★5そのものじゃなく、高圧的な態度
106 名前:デフォルトの名無しさん mailto:sage [2013/04/05(金) 00:49:12.48 ] 態度って、誰の?
107 名前:デフォルトの名無しさん mailto:sage [2013/04/05(金) 01:22:39.49 ] どっちでもいいよ むしろ7追加してこんなことで荒す奴は 来んなってしといた方がいい
108 名前:デフォルトの名無しさん mailto:sage [2013/04/05(金) 03:10:01.82 ] 最初どう言う事か分からなかったけど>>97 はあの基地外が書き込んだものではないと言う事なのか? だから>>100 以降あの基地外らしき人物の自演レスが暫く続いているのか。 どっちも迷惑だから早く氏んでね。
109 名前:デフォルトの名無しさん mailto:sage [2013/04/05(金) 06:35:27.10 ] はいはい、印象操作乙 でも他人に自演のレッテル貼る前に 自分の自演がバレないようにもう少し演技したら( ̄ー ̄)ニヤリッ
110 名前:デフォルトの名無しさん mailto:sage [2013/04/05(金) 06:56:46.25 ] 結局>>1 のせいでまた荒れるのか
111 名前:デフォルトの名無しさん mailto:sage [2013/04/05(金) 07:21:36.55 ] 失礼、間違えました ×結局>>1 のせいでまた荒れるのか ○結局>>1 に粘着する奴のせいでまた荒れるのか
112 名前:デフォルトの名無しさん mailto:sage [2013/04/05(金) 09:45:01.35 ] 印象操作wwww
113 名前:デフォルトの名無しさん mailto:sage [2013/04/05(金) 10:30:59.20 ] ActiveSheet.Range("A1:A2").Value これでエラーになるの何でですかね
114 名前:デフォルトの名無しさん mailto:sage [2013/04/05(金) 10:31:43.52 ] >>110 の印象操作に、当てつけのように印象操作返しか やるなw
115 名前:デフォルトの名無しさん mailto:sage [2013/04/05(金) 10:42:06.65 ] >>113 それ自体はエラーにならないはずだが 返る値が配列なので、代入先が配列変数じゃないと型不一致でエラーになる
116 名前:デフォルトの名無しさん mailto:sage [2013/04/05(金) 10:47:37.63 ] >>115 ヒントd。もう一度コード見直す。
117 名前:デフォルトの名無しさん mailto:sage [2013/04/05(金) 12:22:11.49 ] 印象操作返しwwwwwww
118 名前:デフォルトの名無しさん mailto:sage [2013/04/05(金) 15:32:53.88 ] >>116 それはヒントじゃなくて答えだろ
119 名前:デフォルトの名無しさん mailto:sage [2013/04/05(金) 17:30:28.53 ] はやく春休み終わらないかなぁ