Excel VBA 質問スレ Part31

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
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 質問スレ Part30
http://toro.2ch.net/test/read.cgi/tech/1370088822/

関連スレ:VBAなんでも質問スレ
http://toro.2ch.net/test/read.cgi/tech/1342087380/
2デフォルトの名無しさん:2013/08/13(火) 14:23:15.16
01 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/
06 http://pc11.2ch.net/test/read.cgi/tech/1205231499/
07 http://pc11.2ch.net/test/read.cgi/tech/1212587819/
08 http://pc11.2ch.net/test/read.cgi/tech/1219673793/
09 http://pc11.2ch.net/test/read.cgi/tech/1228372971/
10 http://pc12.2ch.net/test/read.cgi/tech/1235332603/
11 http://pc12.2ch.net/test/read.cgi/tech/1241885130/
12 http://pc12.2ch.net/test/read.cgi/tech/1247566074/
13 http://pc12.2ch.net/test/read.cgi/tech/1254281104/
14 http://pc12.2ch.net/test/read.cgi/tech/1262748898/
15 http://pc12.2ch.net/test/read.cgi/tech/1271261239/
16 http://hibari.2ch.net/test/read.cgi/tech/1280045912/
17 http://hibari.2ch.net/test/read.cgi/tech/1289182437/
18 http://hibari.2ch.net/test/read.cgi/tech/1298240666/
19 http://hibari.2ch.net/test/read.cgi/tech/1305754555/
20 http://hibari.2ch.net/test/read.cgi/tech/1312435844/
21 http://hibari.2ch.net/test/read.cgi/tech/1316931607/
22 http://toro.2ch.net/test/read.cgi/tech/1322400978/
23 http://toro.2ch.net/test/read.cgi/tech/1327763113/
24 http://toro.2ch.net/test/read.cgi/tech/1334305148/
25 http://toro.2ch.net/test/read.cgi/tech/1341722983/
26 http://toro.2ch.net/test/read.cgi/tech/1345363310/
27 http://toro.2ch.net/test/read.cgi/tech/1353842387/
28 http://toro.2ch.net/test/read.cgi/tech/1359607536/
29 http://toro.2ch.net/test/read.cgi/tech/1364689772/
3デフォルトの名無しさん:2013/08/13(火) 14:57:46.67
Debug.Print "乙"
4デフォルトの名無しさん:2013/08/14(水) 10:14:55.78
Excel2002からExcel2010にバージョンアップしたら下記のところでエラーが出て止まるようになった。
毎回必ずエラーになるわけではなく、たまに上手くいく時もあったりして再現性はあやふやだけど。

Worksheets(SheetA).Rows(RowA).Copy Destination:=Worksheets(SheetB).Rows(RowB)

しょうがないから下記に書き直したらエラーは全く出なくなった。

Worksheets(SheetA).Rows(RowA).Copy
Worksheets(SheetB).Rows(RowB).PasteSpecial

なぜ?
5デフォルトの名無しさん:2013/08/15(木) 04:28:55.57
>>4
どんなエラーメッセージが出てるのか分からないと何も答えられないんじゃないかな?
個人的にExcel2010の環境がないから回答できないけど。
6デフォルトの名無しさん:2013/08/15(木) 09:08:54.32
>>5
「オブジェクトは、このプロパティまたはメソッドをサポートしていません」
と出て処理が止まってしまう。でも、実際にSheetBを見るとちゃんと指示通りにCopyが出来ている。
7デフォルトの名無しさん:2013/08/15(木) 09:18:41.73
>>6に追記 OSはwindows8
8デフォルトの名無しさん:2013/08/15(木) 17:12:53.14
>>4
フォーマットが違ってるブックやシート混在してて、
2002と2010の最大行列の違いでエラーはいてるとか・適当だけど。
9デフォルトの名無しさん:2013/08/15(木) 17:47:48.23
age
10sage:2013/08/15(木) 18:47:32.82
ググってもダメ、自力ではエラーだらけで困りました。
数人のメンバーが週間行事予定を「予定表.xls」に記入し、
マクロ実行で同じフォルダ内にある「週間予定表.xls」に転記、
上書きされ共有予定表を作成したいです。
予定表原紙にしか記入はしません。
A 日時
B 内容
C 参加者
D 備考
といった感じに記入します。
記入行数はA4〜G10まで、ただし数値は週によりバラバラです。
コピーマクロを使用すると、罫線までコピーされてしまいました。
どのようなマクロを組んだら良いかご教示頂けませんでしょうか?
11デフォルトの名無しさん:2013/08/15(木) 19:01:14.31
マクロの記録で値のみ貼り付けを調べてみたら?
12sage:2013/08/15(木) 20:01:25.21
>11
ありがとうございます。だいたいやりたいことはできました。
ただ、最終行に追記できないのでここの分を少々悩んでみます。
13デフォルトの名無しさん:2013/08/15(木) 20:18:03.87
同じフォルダならマクロより共有と参照で良さそうだけどダメなのか。謎や。
14sage:2013/08/15(木) 20:30:57.80
>13
個人用と共有用ではファイルを分けなければならない事情があるので
共有と参照では困るんです。
15デフォルトの名無しさん:2013/08/15(木) 20:40:59.17
>>12
よく分からんが頑張って
16片山博文MZパンク ◆0lBZNi.Q7evd :2013/08/15(木) 23:55:39.52
「編集」→「形式を指定して貼り付け」

罫線なしで貼り付けできます
17デフォルトの名無しさん:2013/08/16(金) 06:09:49.36
>>8
同じブック内でのシート間Copyの際に>>4のエラーが出ます。
SheetAもSheetBも最大行列数は同じで、1-66536、A-IV です。

http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1270787107
↑似たようなところでエラー出してたこの人は結局解決したんだろうか。
こっちの回答のようにDestinationを略して書いてもエラーは出る。
18デフォルトの名無しさん:2013/08/20(火) 01:46:32.37
Access2010からデータを取得して編集するのにExcel(2010)VBAを使ってるんだけど、
Access2013にしたら動かなくなったと報告が。。。

今その環境が無くて確認も何もできなくて色々ぐぐってみたんだけど、
Access2013環境に対しては、
『Microsoft.ACE.OLEDB.12.0』が使えなくなったの?
19デフォルトの名無しさん:2013/08/20(火) 02:15:53.76
>>18
そりゃさすがにMSに聞かないと分からん事象じゃないの・・・
逆に、なんで2chで聞こうと思ったの?
20デフォルトの名無しさん:2013/08/20(火) 02:57:29.53
>>19

レスありがと。

実際は別の理由バグが起きてるのかもしれないけど、
ここ(d.hatena.ne.jp/dojum/20130530)に
それっぽいことが書かれてて。

裏付けしようとMSDNも見てみたんだけど、
それっぽいのが見つからなかったんだ。
で、同じ事象にあった人がいないかなぁと思って、
聞いてみた。
21デフォルトの名無しさん:2013/08/21(水) 11:38:57.33
ググっても分からず質問させていただきます
例えばA1に『おはよう』と入ってたとして、A6に『おやすみ』が入ってます。
その間最初の文字が半角スペースなのか判断する方法ありますか?

おはようとおやすみにはスペースは入りません。
おはようとおやすみは必ず決まった文章ですが、中の文字列は毎回変更します。
行数も変わります。
よろしければご教授お願いします。
22デフォルトの名無しさん:2013/08/21(水) 11:47:44.14
>>21
すいません追記です
『おはよう』と『おやすみ』は決まった文章と書きましたが、『おはよう!』の時もあれば『今日もおはよう』の時もあります。
必ずおはようという単語が入ってますが、前後の文章が変わることもあるので決まった文章とはいえませんでした。
大変申し訳ありません。
23デフォルトの名無しさん:2013/08/21(水) 12:14:26.38
解読班!
24デフォルトの名無しさん:2013/08/21(水) 12:17:32.68
>>21
VBA 文字 半角 全角

で検索すれば答えが出て来るだろ(適当
25デフォルトの名無しさん:2013/08/21(水) 12:22:51.27
>>21
> 例えばA1に『おはよう』と入ってたとして、A6に『おやすみ』が入ってます。
> その間最初の文字が半角スペースなのか判断する方法ありますか?

『おはよう』、『おやすみ』の文字列を検索するならInStr関数で対応できる。
最初の文字が半角スペースなのか判断するのもInStr関数で対応できる。
26デフォルトの名無しさん:2013/08/21(水) 13:26:16.80
>>21
いまいち文意がよくわからんけど、適当に解釈して糞コード書いたぞ

Sub 判定()
 Dim r As Long, r1 As Long, r2 As Long
 r1 = 0
 r2 = 0

 For r = 1 To 65536
  If InStr(Cells(r, 1), "おはよう") <> 0 Then r1 = r
   If InStr(Cells(r, 1), "おやすみ") <> 0 Then r2 = r
 Next r

 If r1 = 0 Or r2 = 0 Then
  MsgBox "ちゃんと挨拶しろ"
  Exit Sub
 End If

 For r = r1 + 1 To r2 - 1
  If Cells(r, 1) <> "" Then
   If Left(Cells(r, 1), 1) = " " Then
    MsgBox "半角スペースだっつの"
   Else
    MsgBox "半角スペースじゃねっつの"
   End If
   Exit Sub
  End If
 Next r
End Sub
27デフォルトの名無しさん:2013/08/21(水) 13:41:35.80
>>26
仕様も分からないのにコード書くとはアホかと。
28デフォルトの名無しさん:2013/08/21(水) 13:45:32.23
>>21の仕様とかいちいち真面目に考えてたら日が暮れるわい
29デフォルトの名無しさん:2013/08/21(水) 13:56:01.34
>>26
自ら糞コードというコードを書き込むなよ。
胸糞悪い。

>>28
別にコード書けって言われてるわけじゃないんだから無理する必要はないだろ。
30デフォルトの名無しさん:2013/08/21(水) 14:00:51.48
糞コード>>>>>>>>>>>>>>>>>糞レスの羅列
31デフォルトの名無しさん:2013/08/21(水) 14:32:56.89
>>27
コードを書くことで「俺はこう解釈した」ということが明確になるんだから、お前より100倍まし。
32デフォルトの名無しさん:2013/08/21(水) 17:54:21.25
>>27
これぐらいの仕様なら、日本語でやるよりコードで議論した方が確実。
33デフォルトの名無しさん:2013/08/21(水) 17:58:28.46
だがしかし質問者がコードを読めないという罠
34デフォルトの名無しさん:2013/08/21(水) 18:01:08.98
>>31
>>32
スレのルールを守れないような奴が糞コード書いて議論なんて呆れたものなんだが。
35みんな憧れの桃さん:2013/08/21(水) 18:04:32.57
>>34
雑魚はすっこんでろ
36デフォルトの名無しさん:2013/08/21(水) 18:18:21.77
>>34
荒らしたいの?
37デフォルトの名無しさん:2013/08/21(水) 19:44:47.96
>>34
議論に入れないからって、拗ねるなよ (w
38デフォルトの名無しさん:2013/08/21(水) 19:52:38.57
お、おう
議論頑張ってなw
3921:2013/08/21(水) 21:46:17.85
自分のせいで荒れてしまって申し訳ない
分かりやすいようにおはようとおやすみにしたけど余計混乱させてしまったようだ

interfaceFastEthernet1
_ip address 10.0.0.1 255.255.255.255
_no shutdown
!
(アンダーバーはスペース)
こうなってるかをチェックするツールを作りたかったんです。

FastEthernetの部分はGigaEthernetになることもあるし、Configデータを外部からテキストファイルで読み込んでいるためデータによってはA1、A6ではないことも有り得ます。
実際はB5〜B500までにデータを読み込ませています。
もし最初の文字が半角スペースじゃない時は同じ行のE列に×を表示させたかったんです。

本当に日本語が不自由で申し訳ありません。
40デフォルトの名無しさん:2013/08/21(水) 21:55:09.80
本当に日本語が不自由でワロタ
41デフォルトの名無しさん:2013/08/21(水) 22:10:46.42
>>39
社会人なら上司にその日本語を添削してもらえ
学生なら教師にその日本語を添削してもらえ
で、その結果を書き込んでくれ
頼む
42デフォルトの名無しさん:2013/08/21(水) 22:11:24.65
別にそういう問題であっても>>26の応用で何とかできそうな気がするけど?
これ以上どこが疑問なのか?
43桃白白 ◆9Jro6YFwm650 :2013/08/21(水) 22:12:05.02
>>41
ふつうの日本語だね。桃白白的にはお前の読解力のほうがやばくない?
44デフォルトの名無しさん:2013/08/21(水) 22:12:49.43
ご教示だろ
で、どこまで分かってて何で困ってるんだ?
分かっただろうが丸投げは荒れるんで勘弁な
45桃白白 ◆9Jro6YFwm650 :2013/08/21(水) 22:22:47.50
>>44
教授でも教示でもどっちでもいいよ。教えてほしいってことだろ。
お手紙に草々と書かれていたら俺の頭頂部は決して雑草じゃないが!!と怒り狂うタイプ?
お手紙は心で読むものなんだよ。どういうお気持ちでこのお手紙をお書きになったんだろうかと
思いを馳せながら読むものなんだよ。そうすればクロヤギさんの悲劇も起きなかったんだよ。
知ってる?クロヤギさんお手紙読まずに食べちゃったんだって。おいしいのかな?
4621:2013/08/21(水) 22:37:50.87
申し訳ありません。本当に日本語から勉強したほうが良いかもしれません。
やりたい事は簡単に言うとテキストファイルで書いたconfigデータの階層チェックです。

・現在出来ていること
テキストで書いたをConfigをExcel読み込ませてB5〜B500に表示させる事。
・したい事
読み込ませたB5〜B500にある文字列の内、どこかの行にある"interface"という単語がある行から、その後にある"!"!までの間にある文字列の最初の文字が半角のスペースであるかの判断をしたい。
しかし、interfaceがある行と!のある行最初の文字がスペースではなくてよい。。
interfaceと書いてある行は複数あり、!が書いてある行も複数ある。
その複数のinterface〜!間の階層をチェックしたい。

>>26さんの書いてくれたコードを応用して明日学校で試してみます。
本当に申し訳ありません。答えてくれた皆様ありがとうございました。

今度質問するときは日本語を勉強して来ます・・・。
47デフォルトの名無しさん:2013/08/21(水) 22:52:50.10
>>45
誤用厨と一緒にすんな

「伝わればいいよ」
みんなそれで済ませちゃったら彼は"教授"を使い続ける事になる
小さな恥を積み重ねていくならここで指摘された方がマシだろ
48デフォルトの名無しさん:2013/08/21(水) 22:58:16.44
チェックだけ、なおかつ数もそんなに多くないということで、createobjectでregexp用意して、"^ .*(interface|\!)"でtestしてtrueかどうか判断すれば良いね。

※正規表現の記述は適当。勉強してね。
49デフォルトの名無しさん:2013/08/21(水) 23:02:44.61
眉間にシワを寄せざるを得ない程に説明が下手だな。

判断に必要なのは一行なのか複数行になるのかすら分かりかねる。もはや才能だ。
50桃白白 ◆9Jro6YFwm650 :2013/08/21(水) 23:04:43.21
>>47
別に間違いじゃないよ。間違いじゃないから恥じゃないよ。
恥じゃないから指摘する意味ないよ。恥を積み重ねているのはあなたなんですよ。
51デフォルトの名無しさん:2013/08/21(水) 23:05:05.26
>>46
ConfigはExcelの機能ではなくVBAのOpenステートメントとかでロードしたの?
だったらロード時に一緒にやっちゃった方が効率良いね
52桃白白 ◆9Jro6YFwm650 :2013/08/21(水) 23:05:56.34
>>49
そう?わかりやすいと思うけど。どうして日本語苦手みたいだね?
53デフォルトの名無しさん:2013/08/21(水) 23:07:11.86
データのサンプルを用いて
「この行はxxがスペースだから○」
「この行はxxがスペースだけど、次に出現する!が云々だから×」
とか書いた方が早い。

※サンプルデータは実際のデータではなく適当な文字に置き換えた意味のないデータにするんだよ。
54デフォルトの名無しさん:2013/08/21(水) 23:11:46.94
半角スペースである必要のある行はひとつ右にずらしてロードすればよくね
55桃白白 ◆9Jro6YFwm650 :2013/08/21(水) 23:13:27.98
教授が間違いだと言ってる人って目上の人にご苦労様ですと言ってはいけないと思ってそう。
ご飯食べるときにご飯にお箸を突き立てて手を合わせてお参りしてそう。
56デフォルトの名無しさん:2013/08/21(水) 23:13:40.75
>>54訂正
半角スペースである必要のある行は列を一つ右(C列)にずらしてロードすればよくね
57桃白白 ◆9Jro6YFwm650 :2013/08/21(水) 23:15:46.16
>>56
それは無茶だろう。パンを食べずにケーキ食べればよくねとアンネフランクが言うようなもの。
ギロチンものですわ。
58デフォルトの名無しさん:2013/08/21(水) 23:36:11.67
アンネフランクはどうして出てきた?
59デフォルトの名無しさん:2013/08/21(水) 23:36:25.58
>>55
そもそもお前に言ったんじゃないしスレチだし間違いじゃない根拠挙げないし
挙句、人格攻撃とは何も変わってねぇな
6021:2013/08/21(水) 23:40:46.16
日本語を勉強してから来ると言いましたが来てしまいました。また誤字があったりしたら申し訳ありません。

>>48
ありがとうございます。
明日学校で試してみます!

>>49
本当に自分が嫌になるくらい説明下手ですいません。
複数行になります。interface〜!以外では最初の文字がスペースということは有り得ません。
interface FastEthernet1
ip address 〜 ×
_ no shutdown
!
interface GigaEthernet1
_ip address 〜
_〜〜〜
〜〜〜 ×
_ no shutdown
!
このような物が複数並んでいてその全てを判断したいです。

>>51
そうです。
openステートメントで読込させてます。
一緒にできるんでしょうか?

>>53
なるほど!段階を踏んで考えて行けば出来るかもしれません!
ありがとうございます。

>>54
それも考えたのですが、Excel上で手直しをしてそのまま出力をさせたいのでセルをずらすと出力時困るかなっと思ってこの状態になってます。
61桃白白:2013/08/21(水) 23:47:15.99
>>59
根拠ってなんの根拠だ?あ?
何被害者ぶってんだバーカ。
スレ違いだと思うんならどうでもいい揚げ足取りすんなよw
62デフォルトの名無しさん:2013/08/21(水) 23:47:35.24
とりあえず1回分

Sub a()
  b = 5  ' 5行目から探す
' まずinterfaceを探す
  Do While InStr(Cells(b, "B"), "interface") = 0 And b < 500
    b = b + 1
  Loop
  If b >= 500 Then
    MsgBox ("interfaceが見つからない")
    Exit Sub
  End If
' 次に ! を探す
  c = b + 1  ' interfaceの次の行から
  Do While Cells(c, "B") <> "!" And c < 500
    c = c + 1
  Loop
  If c >= 500 Then
    MsgBox ("!が見つからない")
    Exit Sub
  End If
' 両者の間でスペースを調べる
  For i = b + 1 To c - 1
    If Left(Cells(i, "B"), 1) <> " " Then
      MsgBox (i & "行目にスペースがない")
      Exit Sub
    End If
  Next
  MsgBox ("チェックOK")
End Sub
63桃白白:2013/08/21(水) 23:48:58.60
結局さー教授が間違いだといいたいだけのやつが
誤用厨じゃないと大嘘ついたのが間違いだよね。完全に誤用厨じゃねえかw
64桃白白:2013/08/21(水) 23:53:32.70
教授と教示は全く寸分違わず同じ意味です。今後教授が間違いだと指摘してくるような知恵遅れには精神病院を紹介して差し上げましょう。
65デフォルトの名無しさん:2013/08/21(水) 23:56:53.97
トリップつけろよ
66桃白白:2013/08/22(木) 00:07:38.36
>>65
トリップつけてない奴にトリップつけろと言われてもトリップ付ける気になりませんなー。出直してこいよw
67デフォルトの名無しさん:2013/08/22(木) 00:15:43.44
>>66
なんではずしたの?酉と箍
68デフォルトの名無しさん:2013/08/22(木) 00:17:08.73
>>62
なぜ一回ぶんww
あとは自力でやらないと身にならないよキリッってこと?
イケメン過ぎ抱いて/////
69デフォルトの名無しさん:2013/08/22(木) 00:28:08.62
>>68
どうせ一回分しか作れないのに初心者に偉ぶりたいんだろ
黙っててやれよ
70桃白白:2013/08/22(木) 00:38:21.04
>>67
読めねえよ。常用漢字外はカタカナで書くのが常識だろ。
ひらがなで書け。
71デフォルトの名無しさん:2013/08/22(木) 00:44:19.53
なあ桃白白、ピラフどこ行ったか知んね?
72桃白白:2013/08/22(木) 01:04:06.59
>>71
ぇ・・・知らない。もう寝るよ!!
73デフォルトの名無しさん:2013/08/22(木) 01:10:19.30
ピラフもういなくなったのか
74デフォルトの名無しさん:2013/08/22(木) 06:00:26.96
>>39がやりたいだけだったら、自分だったらわざわざプログラミングせずに
E5セルに↓を入れて、あとはE500までざっとオートフィルして、さっさと仕事を終わらして帰っちゃうけどなぁ

=IF(OR(ISNUMBER(FIND("interface",$B5)),ISNUMBER(FIND("!",$B5)))=FALSE,IF(LEFT($B5,1)<>" ","×",""),"")
75デフォルトの名無しさん:2013/08/22(木) 06:07:03.71
>>74
interfaceより前と、 ! より後の行でもヒットするから失格
76デフォルトの名無しさん:2013/08/22(木) 06:16:03.18
ええ〜?課長>>60でそんなこと言ってなかったじゃ〜ん
説明下手なんだよクソ上司〜ぃ
77デフォルトの名無しさん:2013/08/22(木) 07:04:12.80
>>76
言ってたよ。人のせいにするのいくない。
78デフォルトの名無しさん:2013/08/22(木) 07:55:41.07
>interface FastEthernet1
>ip address 〜 ×
>_ no shutdown
>!
>interface GigaEthernet1
>_ip address 〜
>_〜〜〜
>〜〜〜 ×
>_ no shutdown
>!
>このような物が複数並んでいてその全てを判断したいです。

文字通りに読むなら
interfaceより前と、 ! より後は、既にCUT済みのサンプルって事じゃねーの?
79デフォルトの名無しさん:2013/08/22(木) 08:20:52.95
自分に都合のいいように仕様を決め打ちするのはよくない。
80デフォルトの名無しさん:2013/08/22(木) 08:45:08.81
だから、書かれている以上の事を勝手に決め打ちしてるのは>>75じゃねーの?

まぁ、たぶん現実的には>>75が正解なんだろうけど、
サンプルにinterface〜!以外の行が余計に引っ付いてるとは一言も書かれてないし、
"interface〜!以外では最初の文字がスペースということは有り得ません"と決め打ちして
その部分については全く無視してるしさ。
81デフォルトの名無しさん:2013/08/22(木) 11:13:27.01
>>60 糞コードパート2書いたぞ

Sub 判定()
 'B5〜B500にConfigデータ、E5〜E500に判定結果
 Dim i As Long, j As Long, r As Long
 Dim r1 As Long, r2 As Long
 r1 = 0
 r2 = 0
 Range("E5:E500").Clear

 For i = 5 To 500
  If InStr(Cells(i, 2), "interface") <> 0 Then
   r1 = i
   For j = r1 + 1 To 500
    If InStr(Cells(j, 2), "!") <> 0 Then
     r2 = j
     Exit For
    End If
   Next j

   If r1 >= r2 Then
    MsgBox r1 & "行目くらいからなんか変"
    Exit Sub
   End If

   For r = r1 + 1 To r2 - 1
    If Left(Cells(r, 2), 1) <> " " Then Cells(r, 5) = "×"
   Next r
  End If
 Next i
End Sub
82デフォルトの名無しさん:2013/08/22(木) 12:35:43.95
>>81
-10000000点。
削除依頼のレベルだなw
83デフォルトの名無しさん:2013/08/22(木) 13:04:58.20
exit forとか最悪だな
回数不定のループでdo loop whileとか使わないのは素人

Sub c()
  Dim r As Long
  Dim f As Boolean
  Dim s As String
  r = 5  ' 5行目からスタート
  f = False ' 判定対称かどうかのフラグ
  Do
    s = Cells(r, "B")
    If f Then
      If s = "!" Then  ' 判定終わり
        f = False
      ElseIf Left(s, 1) <> " " Then
        Cells(r, "E") = "×" ' 先頭がスペースじゃなかった
      End If
    Else
      If InStr(s, "interface") > 0 Then
        f = True  ' 次から判定スタート
      End If
    End If
    r = r + 1
  Loop While r <= 500
End Sub
84デフォルトの名無しさん:2013/08/22(木) 13:28:12.81
do loop whileとか使う方が知ろうとだわ
85デフォルトの名無しさん:2013/08/22(木) 13:30:25.83
Exit ForってのはNextの次にGoToで飛ぶのと同じだからな
プログラムの論理構造がきちんと設計できてない証拠だぜ
86デフォルトの名無しさん:2013/08/22(木) 13:33:13.22
>>83
参考になるが、>>81の方が親切設計かもな
87デフォルトの名無しさん:2013/08/22(木) 13:39:10.06
for next の方が do loop より高速なんじゃなかったっけ?
88デフォルトの名無しさん:2013/08/22(木) 13:43:35.05
たまたま最後の ! が抜け落ちてた時はどうするの?
とにかく500行目まで処理するのか、完結してないブロックは対象外とするのか
89デフォルトの名無しさん:2013/08/22(木) 13:45:25.38
>>87
今の時代は速度より可読性を重視する流れだと思う
90デフォルトの名無しさん:2013/08/22(木) 13:50:21.45
そらまあ1回ごとに判定の入るdo〜loopは遅いわな
中間コード見るとわかるけど、for〜nextはループの最初にCXレジスタに回数を入れるだけだから速くて当たり前
91デフォルトの名無しさん:2013/08/22(木) 14:07:04.23
do loop whileは、loop行まで読み進めないとどれだけループするのか不明という、
可読性的に致命的な欠点がある。
92デフォルトの名無しさん:2013/08/22(木) 14:37:24.11
Exit Forがあちこちに散らばってるより
ループから抜ける条件が最後に、一箇所にまとまってる方が可読性が高くないか?
93デフォルトの名無しさん:2013/08/22(木) 14:58:24.81
Do While|Until〜Loopなら条件が最初に来るよね
94デフォルトの名無しさん:2013/08/22(木) 15:06:43.96
>>92
上のコードはあちこちには散らばってないが、そんなに複雑ならメソッドとして抽出するなどしたほうが良いのでは。
9521:2013/08/22(木) 20:01:16.85
皆様ありがとうございました。
お陰様で作りたいものを作ることが出来ました。
>>62さんのが一番分かりやすかったので参考にさせて頂きました。

>>74
interfaceと!間以外に別の設定データがあるためそれは出来ませんでした。
説明不足申し訳ありません。
>>81
何故か学校のエクセルでは動きませんでした。

>>81
ありがとうございました!こちらも参考にさせていただきました。

VBA初めてでネットワーク系のconfigのチェックツールを作ろうとしてましたが、本当に自分の理解力の乏しさでは難しいことを知りました。
これからも勉強して行こうと思います。
96デフォルトの名無しさん:2013/08/22(木) 20:15:33.77
>>95
糞コードを参考にするとは・・・
97デフォルトの名無しさん:2013/08/22(木) 21:47:38.25
For i = start to end
  hoge(i)
Next

↑前者と↓後者 どっちが可読性高いんす

i = start
Do
  hoge(i)
  i = i + 1
Loop While i <= end
98デフォルトの名無しさん:2013/08/22(木) 21:51:12.64
>>97
上の方がわかりやすい。
start > endのとき動作違うよ。
99デフォルトの名無しさん:2013/08/22(木) 22:37:20.98
どう?ウイイレ。
うんちるロープ。
100デフォルトの名無しさん:2013/08/22(木) 22:42:20.84
どぅ、わいる、あんてぃる、るーぷ

ところで宿題なのか。協力する気にならんな。かわいそうに。
101デフォルトの名無しさん:2013/08/22(木) 22:59:21.46
宿題じゃないだろ
宿題ならこんなとこで聞かないで学校で聞くんでね?
102デフォルトの名無しさん:2013/08/22(木) 23:04:53.80
日本語不自由だけど最低限礼が言えるからそんなに悪い奴ではなさそう
初心者で初めてで>>62を見本にループ出来るの様にしたなら頑張ってると思うよ

俺も学生のときこんなんだったかなってノスタルジックな気持ちになったわww
103デフォルトの名無しさん:2013/08/23(金) 01:08:43.02
>>97
単にカウンターでループするだけならForに決まっとる
Do Loopは繰り返す条件や抜ける条件がもっと複雑な時に使う
使い分けろ

あと、Forと同じ動作させるなら
i = start
Do While i <= end
  hoge(i)
  i = i + 1
Loop
104デフォルトの名無しさん:2013/08/23(金) 03:52:05.79
VBA以前の話だな。
105デフォルトの名無しさん:2013/08/23(金) 09:18:23.65
そうか?
106デフォルトの名無しさん:2013/08/23(金) 22:57:01.38
シートAに以下のようなものがあるとします

A  B
1/1  10
1/2  20
1/3  30
1/4  40
1/5  50


このとき別のシートBに日付を2つ入力し、その2点間の平均を求める関数を書きたいです
(例えばシートBのA1に1/2、A2に1/4と記入したらA5には20,30,40の平均=40が出力される)

それについて以下のように考えました

=AVERAGE(INDIRECT(ADDRESS(MATCH(シートB!A1,シートA!A:A,0),2,4,1,"シートA")):INDIRECT(ADDRESS(MATCH(シートB!A2,シートA!A:A,0),2,4,1,"シートA")))

または

=AVERAGE(INDIRECT("シートA!A"&MATCH(シートB!A1,シートA!A:A,0)):INDIRECT("シートA!A"&MATCH(シートB!A2,シートA!A:A,0)))


このとき、AVERAGEの真ん中にあるコロン( : )が コンマ( , )の場合動きましたがコロンの場合どうしても動きませんでした
上記の方法では2点間の範囲という選び方はできないのでしょうか?
また、このほかにもっと良い方法ありましたら教えていただければ幸いです
107デフォルトの名無しさん:2013/08/23(金) 22:58:20.65
すみません関数なのにこちらで質問してしまいました
excel質問スレで再度聞き直してきます
108デフォルトの名無しさん:2013/08/24(土) 11:03:30.25
とりあえずVBAスレなんで糞コード書いた

Sub 集計()
 Dim R1 As Range, R2 As Range
 Dim D1 As Date, D2 As Date

 With Sheets("シートB")
  D1 = DateValue(.Range("A1"))
  D2 = DateValue(.Range("A2"))
 End With

 With Sheets("シートA")
  Set R1 = .Range("A:A").Find(What:=D1, LookIn:=xlFormulas)
  Set R2 = .Range("A:A").Find(What:=D2, LookIn:=xlFormulas)
  If R1 Is Nothing Or R2 Is Nothing Then
   MsgBox "その日のデータないからムリ"
  Else
   Sheets("シートB").Range("A5") = Application.WorksheetFunction.Average(.Range("B" & R1.Row, "B" & R2.Row))
  End If
 End With
End Sub
109デフォルトの名無しさん:2013/08/24(土) 11:28:10.35
>>108に追伸
Find検索のプログラムを走らせたらExcelの検索置換のオプション設定が変わるから、一応注意喚起しとく
110デフォルトの名無しさん:2013/08/25(日) 22:08:52.13
本屋で昔立ち読みした
「ンっもう!最初からそう教えてくれよ。」みたいなタイトルのVBA本は何だったのでしょうか?
111デフォルトの名無しさん:2013/08/25(日) 22:12:50.77
112デフォルトの名無しさん:2013/08/26(月) 11:16:33.32
スレ違いの糞コードで

Sub 検索()
 Dim IE As Object, T As Object, B As Object
 On Error GoTo Error:

 Set IE = CreateObject("InternetExplorer.Application")
 IE.Visible = True
 IE.Navigate "http://www.amazon.co.jp"
 Do While IE.Busy Or IE.ReadyState < 4: DoEvents: Loop

 Set T = IE.Document.getElementByID("twotabsearchtextbox")
 T.Value = "最初からそう教えて"
 For Each B In IE.Document.getElementsByTagName("INPUT")
  If B.Value = "検索" Then
   B.Click
   Exit For
  End If
 Next

 Set IE = Nothing: Set T = Nothing: Set B = Nothing
 Exit Sub
Error:
 If Not IE Is Nothing Then IE.Quit
 Set IE = Nothing: Set T = Nothing: Set B = Nothing
 MsgBox "便利な箱がネットにつながっていないかも。" & vbCrLf & "あと、もしかしたらIEかAmazonがサボってるかも。"
End Sub
113デフォルトの名無しさん:2013/08/27(火) 01:21:14.82
エクセルのピボットテーブル、結果の集計表はもらったのですが、元データをもらっていません。
ピボットの切り口を変えたいため、いまある集計表から元データ(縦持ち)に戻すVBAを書きたいと思っています。

ピボットは1000行、200列ほどあるため、一列にすると約20万行となります。
知恵袋を参考に、下記を適用したのですが、「オーバーフロー」のエラーがでます。

どうすればよいのでしょうか。なお、Win7,Excel2010です。
114デフォルトの名無しさん:2013/08/27(火) 01:24:08.74
Sub Sample()

Dim SyukeiData As Range
Dim i As Integer
Dim j As Integer
Dim k As Integer

Set SyukeiData = Sheets("Sheet1").Range("A1").CurrentRegion

k = 1

For i = 2 To SyukeiData.Rows.Count
For j = 2 To SyukeiData.Columns.Count
Sheets("Sheet2").Cells(k, 1) = SyukeiData.Cells(i, 1)
Sheets("Sheet2").Cells(k, 2) = SyukeiData.Cells(1, j)
Sheets("Sheet2").Cells(k, 3) = SyukeiData.Cells(i, j)
k = k + 1
Next
Next

Set SyukeiData = Nothing

End Sub
115デフォルトの名無しさん:2013/08/27(火) 01:30:21.85
>>114
とりあえずIntegerをLongにすればオーバーフローする確率は下がる
まあ、言いたい事は色々あるが、とりあえず頑張ってくれ
116デフォルトの名無しさん:2013/08/27(火) 01:47:27.89
>>113
オーバーフローの意味ググってみたのかな?
117デフォルトの名無しさん:2013/08/27(火) 10:03:42.82
Sub 糞コードで一言()
  MsgBox "ついでにDoEventsとかも入れてみたらどうかな", vbQuestion
End Sub
118デフォルトの名無しさん:2013/08/27(火) 14:39:08.98
すみません。そのコードをどこに追加したらよいですか。
119デフォルトの名無しさん:2013/08/27(火) 14:52:15.60
Sub 118のレス()
Dim Person as Object
Person = "118"
If Person.Head = "Aho" Then
MsgBox "あなたはアホですね"
Elseif Person.Head "Baka" Then
MsgBox "あなたはバカですね"
Else
MsgBox "あなたはウンコです"
End If
End Sub
120デフォルトの名無しさん:2013/08/27(火) 15:58:03.50
DoEventsの濫用はキケン
121デフォルトの名無しさん:2013/08/28(水) 18:15:38.97
質問させてください。XP pro 、2007です

Worksheets(1).Copy after=Worksheets(1)
ActiveSheet. Name = hensu1 & hensu2

まず、コピーしたシートの貼り付け先として、新しいブックを作りたいです(A.xisとする)
作ったブック(ファイル)の名前に変数を使いたいです。本を見ながらやったんですが、変数が効いたり効かなかったりします…
さらに、同じマクロを再度実行した時は、コピーしたシートを先に作ったA.xlsの末尾に追加していくようにしたいです。

if thenで、「A.xlsというブックが開かれている時には」みたいな条件の付け方ができるのでしょうか?
ご教授お願いします。
122デフォルトの名無しさん:2013/08/28(水) 18:25:51.51
> 「A.xlsというブックが開かれている時には」みたいな条件の付け方

それが本当にやりたいことじゃないだろ。
真にやりたいことを書け。
123121:2013/08/28(水) 18:31:33.86
>>122
最後は自分の想像を書いただけなので、蛇足でした。すみません。
やりたいことは、その上に書いてあるとおりなのですが、何か説明が不足でしょうか?
124デフォルトの名無しさん:2013/08/28(水) 18:54:43.52
>変数が効いたり効かなかったりします…


意味不明
当たり前だけど、モジュールの先頭で Option Explicit はちゃんと宣言してんだろうな?
125デフォルトの名無しさん:2013/08/28(水) 19:14:22.69
>>121
> if thenで、「A.xlsというブックが開かれている時には」みたいな条件の付け方ができるのでしょうか?

「excel vba ファイルを開いているか」でググってみれば?
126デフォルトの名無しさん:2013/08/28(水) 20:34:11.43
>>121
Application.Workbooks プロパティ
開かれているすべてのブックを表す Workbooks コレクションを返します
127デフォルトの名無しさん:2013/08/28(水) 22:20:46.03
set コピー元 = workbook とか worksheetで変数に入れたら分かりやすくなる場合がある

それよりまずは仕様の検討から入りましょうか
要件はコピー元のXxls、コピー先のAxlsですが、それぞれの寿命はいかほどですかね。
マクロをXxlsとAxlsのどちらに乗せるのか、あるいはマクロ用にMxlsを用意すべきなのかを検討したく。

変数についてはexprishitですね。breakポイント打ってオブジェクトwindowでDebugしてもいいですよ。
128121:2013/08/28(水) 22:35:06.51
アドバイス感謝します。
>>127
ありがとうございます。専門用語が半分もわかりませんでしたが仕様に関して
コピー元X.xisはずっと原本として使い続けるであろうもの、コピー先A.xlsは一ヶ月ごとに作成します
ですのでX.xlsにマクロを載せておけばことが足りると思います。
129デフォルトの名無しさん:2013/08/29(木) 00:51:36.70
性別 年齢 血液型
男  20 A
女 40 A
女 60 O
男 40 O
女 20 B
行フィールドが二つ(第1行フィールド、第2行フィールド)あるピボットテーブルで
For Eachで全フィールドの全アイテムのデータの個数を集計したいです。
第1フィールドの最後のアイテムかつ、第2フィールドのアイテムのデータの個数が全て空白なら
その第2フィールドの一つ目のアイテムでGetPivotDataはエラーになります。
これがError→ GetPivotData(データフィールド名, 第1フィールド名, 第1アイテム名, 第2フィールド名, 第2アイテム名)

第1フィールドの集計をなしにする(Subtotalsプロパティ全部False)か、もしくは
第1フィールドと第2フィールドを行フィールドと列フィールドに分ければ上記のエラー出ませんが、
何でエラーになるのでしょうか。
130デフォルトの名無しさん:2013/08/29(木) 01:10:06.01
ピラフに教えてもらおう
131デフォルトの名無しさん:2013/08/29(木) 01:19:45.49
え?ピラフはもう…いないよ
132デフォルトの名無しさん:2013/08/29(木) 01:37:19.92
Private Sub test()
Dim sh1 As Worksheet, sh2 As Worksheet, source_data As String, k As Long, data As Variant
Dim pvt_sh As Worksheet, pvt_tbl As PivotTable
Dim pvt_fld_性 As PivotField, pvt_fld_年 As PivotField, pvt_fld_血 As PivotField
Dim pvt_itm_性 As PivotItem, pvt_itm_年 As PivotItem, pvt_itm_血 As PivotItem
Set sh1 = ThisWorkbook.Worksheets("Sheet1")
source_data = sh1.name & "!R1C1:R" & sh1.Range("A1").End(xlDown).Row & "C" & sh1.Range("A1").End(xlToRight).Column
Set pvt_sh = ThisWorkbook.Worksheets.Add
ThisWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:=source_data).CreatePivotTable TableDestination:=pvt_sh.Cells(3, 1)
Set pvt_tbl = pvt_sh.PivotTables(1)
Set pvt_fld_性 = pvt_tbl.PivotFields("性別")
Set pvt_fld_年 = pvt_tbl.PivotFields("年齢")
Set pvt_fld_血 = pvt_tbl.PivotFields("血液型")
pvt_tbl.AddDataField pvt_fld_年, "データの個数 / " & pvt_fld_年.name, xlCount
pvt_fld_血.Orientation = xlPageField
pvt_fld_性.Orientation = xlRowField
pvt_fld_性.ShowAllItems = True
pvt_fld_年.Orientation = xlRowField
pvt_fld_年.ShowAllItems = True
' pvt_fld_性.Subtotals = Array(False, False, False, False, False, False, False, False, False, False, False, False)
133デフォルトの名無しさん:2013/08/29(木) 01:37:33.35
Set sh2 = ThisWorkbook.Worksheets("Sheet2")
sh2.Cells.Clear
sh2.Cells(1, 1) = pvt_fld_血.name
sh2.Cells(1, 2) = pvt_fld_性.name
sh2.Cells(1, 3) = pvt_fld_年.name
sh2.Cells(1, 4) = "個数"
k = 2
For Each pvt_itm_血 In pvt_fld_血.PivotItems
pvt_fld_血.CurrentPage = pvt_itm_血.name
For Each pvt_itm_性 In pvt_fld_性.PivotItems
For Each pvt_itm_年 In pvt_fld_年.PivotItems
sh2.Cells(k, 1) = pvt_itm_血.name
sh2.Cells(k, 2) = pvt_itm_性.name
sh2.Cells(k, 3) = pvt_itm_年.name
data = Empty
' On Error Resume Next
data = pvt_tbl.GetPivotData(pvt_fld_年.name, pvt_fld_性.name, pvt_itm_性.name, pvt_fld_年.name, pvt_itm_年.name)
' On Error GoTo 0
If (Empty = data) Then sh2.Cells(k, 4) = 0
Else: sh2.Cells(k, 4) = data: End If
sh2.Cells(k, 5) = pvt_tbl.GetPivotData(pvt_fld_年.name, pvt_fld_性.name, pvt_itm_性.name)
k = k + 1
Next Next Next End Sub
134デフォルトの名無しさん:2013/08/29(木) 03:09:20.33
http://up4.ko.gs/src/koupf4113.zip
★zipファイルの「阪神無」フォルダー以下
「平成25年6月」の数値未発表で一部合計値比較不可能の為
 平成25年5月〜平成13年4月は以下の各駅を合計・増減から除外して再計算。
 「阪神」─「本線」─「阪神梅田」〜「千船」
 「阪神」─「なんば線」─「大阪難波」〜「出来島」
★zipファイルの「阪神有」フォルダー以下
 除外せず、「平成25年6月」の未発表数値を前年同月(平成24年6月)と同一と仮定

※「Hnn(年度)」…平成(nn-1)年4月〜平成nn年3月
※「中之島」「渡辺橋」「大江橋」「なにわ橋」…「H21」10月の[総数]は日割り(13/31日) 。
※「大阪難波」「桜川」「ドーム前」「九条」…「H21」3月の[総数]は日割り(12/31日) 。
※「総数」…「H18」の7月以降及び年度平均はOTS線を除いた数値となっている。

平成24年4月〜平成25年6月
http://www.city.osaka.lg.jp/toshikeikaku/page/0000020916.html
[2013年8月27日]
http://www.city.osaka.lg.jp/toshikeikaku/cmsfiles/contents/0000020/20916/6-2.xls

平成24年3月〜平成13年4月
http://www.city.osaka.lg.jp/toshikeikaku/page/0000164566.html
[2013年6月4日]
http://www.city.osaka.lg.jp/toshikeikaku/cmsfiles/contents/0000164/164566/12-6.xls
135129:2013/08/29(木) 03:09:31.43
再現コードです。よろしくお願いします。
136デフォルトの名無しさん:2013/08/29(木) 03:42:47.53
白ももが原因でコード無償作成スレになりますた
137桃白白 ◆9Jro6YFwm650 :2013/08/29(木) 05:16:17.09
>>136
白ももってまさか桃白白のことじゃないかしら。
桃白白こころあたりがないわけではないような気がしないでもなくはないし、ありえなくはなくなくないと思ってるの。
138ピラフ:2013/08/29(木) 05:18:05.69
>>130
えーわかんなーい。ピラフわかんなーい。じゃあさ、みんなで考えてみようよ。

>>131
いるよ。ピラフここにいるよ。いつでも呼んで、その声はピラフのちくわ耳にきっと届くはずだよ。
139デフォルトの名無しさん:2013/08/29(木) 05:58:42.11
桃白白とピラフって同一人物だったのか
140デフォルトの名無しさん:2013/08/29(木) 07:20:57.71
>>139
おまえ消されるぞ
141デフォルトの名無しさん:2013/08/29(木) 07:30:06.11
パイパンのトリップキー漏れたね。
142デフォルトの名無しさん:2013/08/29(木) 11:02:58.61
>>121
Sub xisってなんなんだろう糞にはわからない()
 Dim wbc As Integer, wsc As Integer, i As Integer, s As Worksheet
 Dim APath As String, AFname As String, ASname As String
 APath = "C:\Aのほぞんばしょ\"
 AFname = "A.xls"
 ASname = "あたらしいシートのなまえ"

 For wbc = 1 To Workbooks.Count
  If (Workbooks(wbc).Name = AFname) Then Exit For
 Next
 If (wbc > Workbooks.Count) Then
  Workbooks.Add
  ActiveWorkbook.SaveAs Filename:=APath & AFname
 End If

 wsc = Workbooks(AFname).Worksheets.Count
 Workbooks("X.xls").Worksheets(1).Copy after:=Workbooks(AFname).Worksheets(wsc)

 For Each s In ActiveWorkbook.Worksheets
  If s.Name Like ASname & "*" Then i = i + 1
 Next
 If i = 0 Then
  ActiveSheet.Name = ASname
 Else
  ActiveSheet.Name = ASname & "(" & i & ")"
 End If
End Sub
143デフォルトの名無しさん:2013/08/29(木) 11:07:59.45
あれ?余計な ( ) が入ってたわ
144デフォルトの名無しさん:2013/08/29(木) 15:07:00.37
>>142
>>128で終わっていると思うけど、うざいね。
145デフォルトの名無しさん:2013/08/29(木) 21:05:46.53
VBAのコードで
セルに文字列の数字を入力したいとき
どうやりますか?

ふつうにActivecell="123"みたいにしても文字列になってないんですよ。
146デフォルトの名無しさん:2013/08/29(木) 21:34:07.86
>>145

Sub test1()
'アクティブセルに文字入力
ActiveCell.Value = "123"
End Sub
147デフォルトの名無しさん:2013/08/29(木) 22:10:42.85
>>145
該当セルの表示形式が「標準」の時は、
ActiveCell.Value = "'123" の様に'を入れるか、
先にセルの表示形式を「文字列」に変えておく。
って、まじめに書いたけど、この質問は釣り?
148145:2013/08/29(木) 22:11:20.53
>>146
ん?
それでも変わりませんよ。
文字列になってないです。
149145:2013/08/29(木) 22:15:20.97
>>147
釣れた(笑)
って、釣りってなによ?
自意識過剰すぎるよ。

たしかに ' の方法でも、先に「文字列」に変えておく方法でも、できたけど、ここで質問。

この ' はいままでにも使ったことあったけど
表示では ' は見えないけどセルに値を変更しようとすると ' が再び現れる。
気持ち悪いんですけど。

というのは ' の性質をきちんと把握しておかないと
今後VBAでバンバンとコードを書くときに
不安でしかたがないじゃん?

' の性質についてExcelを使う上での注意点を教えてください、だれか。
150145:2013/08/29(木) 22:17:57.05
たとえばセルに値が '123 とはいってるとき
LEN関数でこのセルの文字数を調べると4じゃなく3なんだ。
' は文字としてカウントしない特別な文字ってこと?
もしそうなら、もし ' を文字列としてセルの最初の文字に使いたいときはどう入力する?、みたいにいろんな問題が出てきそう。
151デフォルトの名無しさん:2013/08/29(木) 22:29:07.51
>>149
「'」を使用して数字を文字列扱いするようになったのは、
エクセルが出来る以前(Z80時代)のビジカルクというソフトからの流れを汲んでいます。
後は自分で調べなさい、自意識過剰より。
152デフォルトの名無しさん:2013/08/29(木) 22:29:10.35
Sub Macro1()
' セルに数字を入れる
ActiveCell.FormulaR1C1 = "123"
End Sub

コレでどうだろ
153デフォルトの名無しさん:2013/08/29(木) 22:32:07.64
>>152
こっちのほうがいいかも

Sub Macro2()
'セルに数字を入れて1つ下のセルに移動する
ActiveCell.FormulaR1C1 = "123"
ActiveCell.Offset(1, 0).Select
End Sub
154デフォルトの名無しさん:2013/08/29(木) 22:36:36.97
何がしたいんだ
155デフォルトの名無しさん:2013/08/29(木) 22:41:34.69
そのR2-D2みたいなのってどう使うの?
別にValueでも省略でも良くね?
オレ一回も使ったことないよ
http://ecx.images-amazon.com/images/I/41LfT-V8r2L._SL500_AA300_.jpg
156デフォルトの名無しさん:2013/08/29(木) 22:43:54.82
>>155
R1C1形式は行(Row)をRと行番号、列(Column)をCと列番号で表す形式
157デフォルトの名無しさん:2013/08/29(木) 22:51:27.85
FormulaR1C1プロパティはわざわざ使う必要はないね
使ってる人はまず間違いなく「マクロの記録」に頼ってる人
158デフォルトの名無しさん:2013/08/29(木) 23:04:09.19
>>157
>>146で出来ないって言われたからマクロの記録使ったので正解です
なんで>>146で出来んのだろ…
159デフォルトの名無しさん:2013/08/29(木) 23:07:33.85
>>157
そうでもないぞ
プログラムで数式設定する場合は結構便利
160デフォルトの名無しさん:2013/08/29(木) 23:09:37.15
>>159
どう使うの?
161デフォルトの名無しさん:2013/08/30(金) 00:14:32.62
>>150
> もし ' を文字列としてセルの最初の文字に使いたいときはどう入力する?

例えば '13 3月 なら...

ActiveCell.Value = "''13 3月"

別に VBA じゃなくても普通に使うだろ?
162150:2013/08/30(金) 00:25:58.48
>>161
こんな場合は?

あるセルに「Rock'n'roll」という文字が入ってて
その隣セルに、mid関数でそのセルの5番目の文字から7番目の文字を入力(つまり「=mid(A1,5,3)」とする)とし、さらにそのセルを値コピーでそのまた隣セルに入力すると
そのセルは「'n'」となると思いきや、 ' の特別ルールのせいで「n'」になってしまう。

こんなことからバグが生じ、
例えば宇宙ロケットのコードを設計してるときに
この ' に起因するバグのせいでロケットが爆発し人が死ぬこともありえる。
163デフォルトの名無しさん:2013/08/30(金) 01:24:25.98
>>162
頭の′以外は文字として認識されるんじゃなかった?
164デフォルトの名無しさん:2013/08/30(金) 03:25:09.43
>>149,162
形式を選択して張りつけるとちゃんと'n'になるみたいだな
でまあ、文字列を表すために'つかうと色々ややこしくなる時があるのはその通り
だけどそれはそう言う仕様です
それでバグったらプログラマの仕様不理解でプログラマの責任です

注意点は使うなら気をつけて使ってください
なるべく使わない事をお勧めします
165デフォルトの名無しさん:2013/08/30(金) 06:15:34.36
>>145
Sub これじゃだめなのか()
  ActiveCell = "123"
  ActiveCell.NumberFormat = "@"
End Sub
166デフォルトの名無しさん:2013/08/30(金) 07:29:23.81
>>162
n'になるの?

なるならセルの仕様の通りで素直でよろしいじゃないの
167デフォルトの名無しさん:2013/08/30(金) 07:34:50.29
>>162
> そのセルは「'n'」となると思いきや、 ' の特別ルールのせいで「n'」になってしまう。

根本的に誤解してると思うけど、' の処理は表示だけだよ。
VBA で直接値取得すればわかるでしょ。
そんな処理が気に入らないと言うなら、書式を文字列にすればいいだけだし。
168デフォルトの名無しさん:2013/08/30(金) 09:08:11.12
そういえば某サイトの某公式ツールが ' のところでバグって
一部使い物にならなくなってたな。まさかExcelを使ってるわけないが。
なんにせよ ' は気色悪い。 , も気色悪い。たまに " も も気色悪い。
169ほしほし:2013/08/30(金) 11:05:17.57
一つのユーザーフォームでリストボックスを使用せずに登録、新規登録、修正、削除は可能ですか?
可能ならばどのようにするのでしょうか?
超初心者な為に本やネットを見て作成してますがわかりません。
因みにリストボックスで試したのですが、項目が13項目あって作り方がわかりませんでした。
170ほしほし:2013/08/30(金) 11:07:38.24
すみません、登録と新規登録は既に出来ています。修正と削除方法がわからないのです。
質問が抜けていました。
171デフォルトの名無しさん:2013/08/30(金) 11:12:01.18
シングルクォーテーションもそうだが=もそう。
range("a1").value = "=123"
debug.print range("a1").value
debug.print len(range("a1").value
=> 123
=> 3
172デフォルトの名無しさん:2013/08/30(金) 12:22:05.58
>>169
修正、削除の対象をどうやって指定するの?
173ほしほし:2013/08/30(金) 12:25:11.61
番号を振ってあるので検索ボタンを付けたいです。
174デフォルトの名無しさん:2013/08/30(金) 12:35:34.20
175ほしほし:2013/08/30(金) 12:39:01.68
それは私が質問しました、すみませんどうしてもわからなくて。。三か所に質問しました。
176デフォルトの名無しさん:2013/08/30(金) 12:40:57.79
マルチポスト死ね
177ほしほし:2013/08/30(金) 12:43:34.00
すみません。。わからなかったもので、どこで解決できるかもわからなかったので。
178デフォルトの名無しさん:2013/08/30(金) 12:50:41.30
マルチポストがマナー違反と見なされるのは、以下のような理由による。
・他のコミュニティーで付けられた回答を知らずに同内容の回答を付けてしまったり、他のコミュニティーですでに解決したことを知らずに検討を続けたり、善意の回答者の労力が無駄になる。
・この場所だけでは質問が解決するか不安であるという不信感を表明することと、結果としては同じである。
179デフォルトの名無しさん:2013/08/30(金) 13:08:07.28
ほんとコード提供スレになっちまったな
180デフォルトの名無しさん:2013/08/30(金) 13:11:18.86
いいじゃん
181ほしほし:2013/08/30(金) 13:12:33.95
すみません、知らなかったので三か所に書きました。
ご迷惑でしょうから、何とか自分で解決します。
182デフォルトの名無しさん:2013/08/30(金) 13:15:55.15
私は人間というものを知りませんでした、という表明
183デフォルトの名無しさん:2013/08/30(金) 13:39:05.89
他所記入内容を見て、やっと質問の意味が理解できた。
下記を参考
ttp://blog.goo.ne.jp/pc_college/e/5e9ba23c2286e03327384d06766cf4d9
「25列までリストボックスに表示」とある、
多分この事でしょう。
他所の質問は忘れずに、解決済みとして処理して下さい。
184デフォルトの名無しさん:2013/08/30(金) 13:50:52.08
なるほどー
185ほしほし:2013/08/30(金) 13:56:50.10
迷惑かけたのに回答いただいてありがとうございます。
>>183
これはやってみたのですが何故か動作しませんでした。
もう少し頑張ってみます。
186デフォルトの名無しさん:2013/08/30(金) 15:59:09.44
>>185
コードを記入したのは、ユーザーフォームで間違いないでしょうか。
同じエクセル2007で下記コードで、15列のリストボックス出来ました。
試してみてください。
Private Sub UserForm_Initialize()
'このコードは「ユーザーフォーム」に記入、シート・標準モジュールでは実行時エラー424になります。
'ダミーデータ作成
Cells(1, 1) = "日付": Cells(1, 2) = "会社名": Cells(1, 3) = "担当者名": Cells(1, 4) = "電話番号"
Cells(1, 5) = "メールアドレス": Cells(1, 6) = "住所": Cells(1, 7) = "テキストボックス1"
Cells(1, 8) = "チェックボックス1": Cells(1, 9) = "チェックボックス2"
Cells(1, 10) = "チェックボックス3": Cells(1, 11) = "チェックボックス4": Cells(1, 12) = "テキストボックス2"
Cells(1, 13) = "M": Cells(1, 14) = "N": Cells(1, 15) = "O"

For i = 2 To 10
For j = 1 To 15
Cells(i, j) = "Dat" & i & "," & j
Next j
Next i
'ここからリストボックスの操作
ListBox1.RowSource = "A1:o10"
With ListBox1
.ColumnCount = 15 '列数を15に設定 次の行で列幅を設定
.ColumnWidths = "35;35;35;35;35;35;35;35;35;35;35;35;35;35;35"
End With
End Sub
187デフォルトの名無しさん:2013/08/30(金) 17:17:22.70
>>186
本人が頑張るって言ってるんだから大きなお世話だろ。
188デフォルトの名無しさん:2013/08/30(金) 17:55:03.86
>>187
大きなお世話はお前の方。無意味なレスするぐらいなら黙ってろ。
189デフォルトの名無しさん:2013/08/30(金) 18:15:06.68
>>188
質問者の「もう少し頑張ってみます。」という言葉は尊重しないってことね。
190ピラフ:2013/08/30(金) 18:26:54.68
>>189
うぜーな黙ってろ
191デフォルトの名無しさん:2013/08/30(金) 18:30:54.87
お前が脇から言うことじゃないってことだよ。
192デフォルトの名無しさん:2013/08/30(金) 18:31:30.44
ピラフに先にレスされたw
193デフォルトの名無しさん:2013/08/30(金) 18:32:14.54
>>188
手取り足取り1から10まで全部教えたら質問者の為にならんよ
194ピラフ:2013/08/30(金) 18:37:29.39
>>193
てめえは質問者の保護者にでもなったつもりか?お〜ん?
お前に教えられたらIQ下がるわ。責任とれんのか?どうやって?
無理だよね。じゃあ保護者気取るべきじゃないし、質問者は2歳児でもないよね。
まんまんに毛がはえたら自分のことは自分でやれるだろ。それが自律というものだ。
アダルティが集うスレで質問者のためとかどうとかいうのはただのバカであることを自覚しろ。
195ピラフ:2013/08/30(金) 18:40:37.44
結局さー、回答者が質問者より上だというそういう調子に乗った態度が>>193のような
やつを作り上げるんだよね。質問者のほうがお前よりよほど頭いいだろと。
何様だよと。でてけよと。ここはピラフの憩いの場。何人も荒らすことは許さない。ピラフ許さない!!
196デフォルトの名無しさん:2013/08/30(金) 18:43:13.87
パイパンうぜぇ
197デフォルトの名無しさん:2013/08/30(金) 18:43:50.90
>>193
為になるか為にならないかは人それぞれだし、そんなん知るかw
少なくとも>>193の書いたくだらんレスよりは、他人の書いたコード見てた方が為になるわ。
198デフォルトの名無しさん:2013/08/30(金) 18:53:21.28
>でてけよと。ここはピラフの憩いの場。何人も荒らすことは許さない

もう来んわこんなスレw
199デフォルトの名無しさん:2013/08/30(金) 18:55:49.25
ってかさ何でピラフが横から入ってくるんだ?
関係ないだろうに。
200デフォルトの名無しさん:2013/08/30(金) 18:57:44.11
なあ、ピラフ
桃白白知らない?
201ピラフ:2013/08/30(金) 18:57:46.81
>>199
はあ?ここはピラフの憩いの場なんだから、ここで行われた発言は
あまねくおしなべてピラフへの発言だろ。このスレ誰が建てたと思ってるの?
ピラフじゃないことは確かだけど、ピラフはとても感謝しています。いつもありがとうございます。
今後ともよろしくお願い申し上げます。
202デフォルトの名無しさん:2013/08/30(金) 18:59:27.29
ピラフちゃん好きだよ
203デフォルトの名無しさん:2013/08/30(金) 21:15:59.89
はやく夏休み終わらんかなぁ
204デフォルトの名無しさん:2013/08/30(金) 21:49:29.30
ピラフさんのピラピラを広げてグヘヘヘ



(´・ω・`)b
205デフォルトの名無しさん:2013/08/31(土) 01:35:04.22
まだレス200か。無駄に争うのは不可避なようなので次スレでのれん分けしないか。
ここはコード提示は厳禁にして、新規スレはコードで語れってことにしないか。てかしようよ。
共存できるなら不要だけどお互いに相容れない以上はその必要があると思う。
206デフォルトの名無しさん:2013/08/31(土) 02:55:21.04
コード提示禁止でプログラム言語の質問スレが成り立つとは思えん
207デフォルトの名無しさん:2013/08/31(土) 04:08:07.00
>>205
プログラム質問スレでコード書かなかったら成り立たないだろ
208デフォルトの名無しさん:2013/08/31(土) 04:13:17.83
>>206
>>207
だから二分しようよ。
コード出すな、糞コードだ、云々、延々。
不毛だし。
成立しないならしないで廃れるだけだし、荒れてしまうよりは全然OKかなっと。

それとも「コード提示行為の議論は禁止」とでもテンプレに入れる?
ここまで不毛に言い合ってきて今さら効果あるかなというか、住人の皆の収まりがつくかね。
209デフォルトの名無しさん:2013/08/31(土) 04:20:38.95
>>205
コード提示禁止というより、質問者がコード提示してもないのに
回答者が勝手にコードを提示するのが問題だと思う。

別スレというより「VBAなんでも質問スレ」で充分だと思うけど。
元々ここから派生したスレだし、スレのルールは無いに等しいし。
ってかさ、このスレでコードで語りたいっていう奴は、
一部の回答者しかいないから別スレ立てても意味ないと思うけど。

あえてやるなら、「VBAなんでも質問スレ」に誘導で充分だと思う。
誘導しても回答者しかいないからコードの議論になるか怪しいものだが。

質問者がコードで質問してきたらコードで返せばいいし、
文章で質問してきたら文章で返せばいいんじゃね?

>>205はコード提示厳禁をルール化しようと思ってるようだけど
既に>>1の★5で既にルール化されてるから。
210デフォルトの名無しさん:2013/08/31(土) 05:33:51.65
コード書くなって奴は何なの?
コードも書けずに偉そうに理屈垂れることが出来なくなるから
難癖付けて嫌がっている様にしか見えん。
>>1★5のクレクレと、説明時にコードを書くのは別問題だろ
嫌なら自分で別スレ立てろ。ここはお前が王様のオナニースレではない。
211ピラフ:2013/08/31(土) 05:56:21.94
どうやって考えを相手に伝えるかはそれぞれの自由だ。問題なんて一切ない。
ただの嫉妬。
212186:2013/08/31(土) 08:01:19.11
私の記入したコードで問題になってるようなので、私の考えを記入させて頂きます。
今回は、質問者のレベルが初心者と判断、>>183で参考URLを提示、
>>185で「何故か動作しませんでした」、とエラー内容も把握できないレベルと判った。
質問者のやりたい内容は顧客管理の様なDBで、
質問は「リストボックスで10列以上が出来ない」、
その部分のヒントとして15列のリストボックス・コードのサンプルを提示しました。
コードの中に"会社名"等が入ってるから、丸投げ作成と誤解されてるようですが、
それらタイトル部分は質問者は既に作成できています。
質問者のレベルに合わせて、サンプルコードを理解してもらうために、
敢えて単純なコードでダミーデータも作成しました。
チェックボックスの処理、件数増加時など、
質問者の作成しようとしているDBには、まだ問題が山積みでしょうが、
それは自力で一歩ずつ覚えていく事で、
つまづいたら、また部分的に質問して貰えればと思っています。
.
VBAに限らず、どの言語も他の言葉だけで説明し、理解してもらうのは難しいと考えます。
多くの書籍がコードを載せているのはその為でしょう。
他の言語と比較して、VBAが簡単と言われていても、
初心者には未知の宇宙語なのだと思います。
213デフォルトの名無しさん:2013/08/31(土) 08:01:42.52
>>210
質問の流れを無視してコードを書くのが問題なんだが。
質問の流れで質問者がコードを提示して、それをもとに回答していくなら問題ないと思う。

コードを提示されてない、仕様は曖昧、不明な仕様を質問者に聞こうともせず
いきなりコードを書くという行為は、あさってなコードを書いてしまうというリスクがある分
無駄な作業なんだが。

>>1★5は質問者だけでなく、回答者にも言えることだろ。
回答者はヒントを出せばいいだけ、解答コードを晒す必要なんかないってこと。
このスレのルールを守れないやつが別のスレ立てればいいと思うけど

スレのルールを守れないやつがスレを立ててもダメなんだろうな。
だってスレのルール守れないんだもん。
214ピラフ:2013/08/31(土) 08:07:10.64
>>213
質問者がヒントだけでよければコード読まなきゃいいだけだろ。
お前さ質問者を何だと思ってるわけ?回答者の発言でコントロールしなければ
ならないミジンコみたいなものだとでも思ってるわけ?他人の回答にいちゃもんつける
お前のようなゴミ野郎が消えればこのスレは良くなるだろ。問題なのはお前の存在だけ。
215デフォルトの名無しさん:2013/08/31(土) 08:07:52.59
>>212
後出しジャンケンもいいところ。
エラー内容も把握できなかったら聞けばいいだけなんだが
何でそんな簡単なことができないのかな。
質問者も焦っているようでもなし。
自らコミュ障を露呈しているようなものだ。
216ピラフ:2013/08/31(土) 08:08:58.08
>それをもとに回答していくなら問題ないと思う。

何様だよ。どういう立場でものいってんだ。ピラフぶちぎれんぞ。
217ピラフ:2013/08/31(土) 08:10:25.57
>>215
お前は聞いたのか?聞くべきだとお前が思ってるのならお前が聞くべきだ。
他の回答者にけちつけるんじゃなくて、自ら動いてすばらしい回答者っぷりを
発揮してくださればいいじゃないか。なんで自分でやらずに他のやつの足ひっぱるような
まねするんだよ。コミュ障はお前だよ。
218ピラフ:2013/08/31(土) 08:12:35.98
質問者と質問に答えようとする善良な回答者と、
質問者のためになってないといって回答者にいちゃもんつける完全なるゴミがいる。
219ピラフ:2013/08/31(土) 08:14:52.01
>>215
お前まだ手だしてないけど?
後出しじゃんけんといいたいだけなのか?wwwぶひょひょひょwww
ピラフ大爆笑wwwww
220デフォルトの名無しさん:2013/08/31(土) 08:16:19.16
>>217
>>185を声を出して一億回読め。
本人で解決しようとしている訳だから質問者目線で言えば、これ以上深入りしても余計なお世話だと思うが。
221デフォルトの名無しさん:2013/08/31(土) 08:44:34.97
だから質問者は沈黙してる。それでいい。
深入り不要と思ったら沈黙しろ。見る必要がないと思ったら見るな。
質問者のためにならなくても、他の人間にはためになることもある。
だから自由に解説させてやれ。コードを書かせてやれ。
VBAスレなのにVBAを止めようと嫌味なレスばかりしている奴が居るから余計なレスが増えて荒れるんだ。
222ピラフ:2013/08/31(土) 08:47:28.22
>>220
立派な考えだな。小さな気遣い余計なお世話ということわざもある。
しかし、その考えを他の人に押し付けてお前もこう思えこうやれっていうのは独り善がりだよ。

世の中にはいろんな人がいる。コードを書いて詳細をつめていったほうがわかりやすいと
思ってる人もいれば、たんに雑談したいだけの人もいる。頑張りますといって
助けを待つ人もいれば、頑張りませんといって影で努力する人もいる。
俺ぜんぜん勉強してねーわーやべーわーという人もいる。お前がどう考えるのかは
とうぜんお前の自由だが、それを他の人に強いてルールだなんていうのは身勝手だな。

自分の考えをもつことは大事だと思うけれども、他人の考えにぶつけてしまうのはへたくそですわ。
頭のナットが緩んでる社会人2年目くらいの木偶の坊がやらかす衝突事故ですわ。
223デフォルトの名無しさん:2013/08/31(土) 08:50:48.98
224デフォルトの名無しさん:2013/08/31(土) 09:49:40.71
>>222
お前が言いたいことはルールなんかクソ食らえ、俺のやりたいようにやるってことだよな
225ピラフ:2013/08/31(土) 10:01:19.42
>>224
違うよ。いろんな人がいるよってこと。
自分の考えを他人に押し付けてこれがルールというのは独善的で井戸の中の
カエルさんならそれでいいかもしれないけれども、それって井戸魔人でしかないよねってこと。
226ピラフ:2013/08/31(土) 10:02:32.81
227デフォルトの名無しさん:2013/08/31(土) 10:52:52.36
結局の所、自分の意見をやれあーしろこーしろ行って押し付ける奴は
他の奴にとって迷惑でしかないと言うことだな。
好きなスレ立ててそこでやれ。ここから出てけ。
228デフォルトの名無しさん:2013/08/31(土) 11:02:57.89
嫌なら見るな君、口出すなちゃんは、この手の話にしっかり反応してるのね。スルーすればいいのにと他人をバカにしつつも。
229デフォルトの名無しさん:2013/08/31(土) 11:19:44.86
>>228
そういう奴はこの手の話が嫌ではないんだろ
なんの不思議もない
230デフォルトの名無しさん:2013/08/31(土) 12:02:42.66
>>223
これが、URLの貼り方
>>226
この人が、どや顔してスルーされる方
231デフォルトの名無しさん:2013/08/31(土) 16:16:26.44
>>225
>>224の言うとおりにしか見えないが。
いろんな人がいるからこそスレにルールがあるっていうことも分からないのかな。
いくら熱弁してもスレのルールを守れないようじゃ誰も話を聞かないよ。
232デフォルトの名無しさん:2013/08/31(土) 17:13:35.75
>>231
いい加減引き際を弁えろ
誰もお前の押し付けたルールの話なんぞ聞きたい奴なんかいねーよ。
いつまでもうじうじとみっともない奴だな消えろよ。
233デフォルトの名無しさん:2013/08/31(土) 17:21:21.09
>>232
横やりだけど、押し付けたルールってなに
234デフォルトの名無しさん:2013/08/31(土) 17:33:27.79
>>232
>>1★5を盾にしてコイツはまた沸いてくるって前俺が言ったとおりになったな。
これで分かったろ?>>1★5は改変するか削除するべきなんだ。
235デフォルトの名無しさん:2013/08/31(土) 17:40:00.85
>>234
>>1★5はそのままでOKという結果になった訳だが。
236ピラフ:2013/08/31(土) 17:54:49.65
>>231
ピラフは違うと言ったわけだから、見える見えないの問題じゃないよ。
違うといったピラフの発言をかみ締めるべきだよ。違うといったにもかかわらず、
そうとしか見えないといって持論を推し進めるのはずいぶんなガンコ者だな。
どうやったらそんなにかたくなな生き物になるのかピラフはお前の親御さんの子育て方針を
拝聴つかまつりたい気分でおじゃるわ。ピラフのみやびなお耳でお聞きあそばしたいわ。
237ピラフ:2013/08/31(土) 17:59:13.35
>>233
縦やりなんだけどーピラフこれだと思うー。

>質問者がコードで質問してきたらコードで返せばいいし、
>文章で質問してきたら文章で返せばいいんじゃね?

>>205はコード提示厳禁をルール化しようと思ってるようだけど
>既に>>1の★5で既にルール化されてるから。
238デフォルトの名無しさん:2013/08/31(土) 18:21:16.31
回答者や回答内容の質をどうこう言うのはまだ理解できるとして
コード禁止ってやつは何考えてそう主張してるんだ?
コード禁止したら回答の質が上がるとでも思ってるのか?
239デフォルトの名無しさん:2013/08/31(土) 18:45:33.43
もう質問も回答も禁止にしちゃえばいいじゃない
240デフォルトの名無しさん:2013/08/31(土) 18:48:46.34
>>238
頭ごなしにコード禁止って言ってるやつは見たことないけど?
241デフォルトの名無しさん:2013/08/31(土) 18:59:32.71
もうコード禁止って言ってる奴を頭ごなしに出入り禁止にしろってのを>>1★5にしておけばみんな幸せ
242デフォルトの名無しさん:2013/08/31(土) 19:20:39.74
「文字列」で保存されてる数字のセルがたくさんあります。
これをVBAで「数値」に変えるには
どういうコードを書けばいいですか?
243デフォルトの名無しさん:2013/08/31(土) 19:30:51.97
>>242
「excel vba 文字列を数値に変換」でぐぐればいいんじゃね?
244デフォルトの名無しさん:2013/08/31(土) 19:32:17.41
>>243
どうぐぐればいいのか聞いてません。コードを提示できない無能は黙っててください。
245デフォルトの名無しさん:2013/08/31(土) 19:42:33.03
>>244
コードクレクレ君は別スレ行ってくれ。
246デフォルトの名無しさん:2013/08/31(土) 19:45:48.20
>>245
ぐぐる厨が他所にいけ。
247デフォルトの名無しさん:2013/08/31(土) 19:47:10.87
なんでぐぐらなきゃわからんようなやつが回答しようとするかね。
248242:2013/08/31(土) 20:12:32.37
これはもうアレだな。
「ググれ」「グーグルつかえ」「ククレカレー」
アホの1つ覚え。
これは現代版の荒らしだ。

>>244>>247
あなたはニセモノですが、オレの言いたいことを見事に大便(=代弁)してくれてありがとう。
249デフォルトの名無しさん:2013/08/31(土) 20:13:08.73
次の方どうぞ
250デフォルトの名無しさん:2013/08/31(土) 20:14:34.20
>>248
数値化したいセルはランダムなのか表になっていてその範囲なのかシート全体なのかを書いてくれないとコードも書けない
251デフォルトの名無しさん:2013/08/31(土) 20:23:25.01
>>248
>>1★5
252242:2013/08/31(土) 20:25:33.93
>>250
そこは適当でいいです。
セル1つ変えることができればあとはなんとでもなるんで。

なので
ActiveCell=
の続きを書いていたたければ嬉しいです。
253デフォルトの名無しさん:2013/08/31(土) 20:26:24.97
>>1★5はぐぐる厨の免罪符
254デフォルトの名無しさん:2013/08/31(土) 20:29:12.10
コード作成依頼スレになってるね。
255デフォルトの名無しさん:2013/08/31(土) 20:33:02.76
>>254
なってないだろ。仕様を述べるから全部実装しろというのなら作成依頼だが、
数値に変換する方法を聞いてるだけだ。
256デフォルトの名無しさん:2013/08/31(土) 20:37:18.44
>>242
Sub こんなんはどうだろか()
  Dim x1 As Long, x2 As Long, x3 As Long, x4 As Long
  Dim r As Long, c As Long
  Dim x As Range
  Set x = ActiveSheet.UsedRange
  x1 = x.Row
  x2 = x.Row + x.Rows.Count - 1
  x3 = x.Column
  x4 = x.Column + x.Columns.Count - 1

  For r = x1 To x2
    For c = x3 To x4
      If IsNumeric(Cells(r, c)) Then Cells(r, c).NumberFormat = "General"
    Next
  Next
End Sub
257デフォルトの名無しさん:2013/08/31(土) 20:54:43.87
EXCELは値が数字だけなら、その値は数値、数字以外の文字があると文字列と判断するから
ActiveCell.Value =つかって同じセルに書き出せばいいんじゃないかな?
それかSelection.NumberFormatLocal = "0_ "で書式を設定するのは?
258デフォルトの名無しさん:2013/08/31(土) 20:55:40.70
質問スレの回答として、ぐぐれば簡単に解決できる事で質問に値しないという意味で検索しろってのは至極まともだと思うな。
>>1★5、★6はスレのルールとして正しいと解る例だ。
259デフォルトの名無しさん:2013/08/31(土) 20:59:28.47
>>258
黙れぐぐる厨。
260242:2013/08/31(土) 21:00:16.60
>>256
糞コードw却下w
261デフォルトの名無しさん:2013/08/31(土) 21:01:09.39
>>258
ぐぐらないとわからないくせにw一人でぐぐってろよ。
262デフォルトの名無しさん:2013/08/31(土) 21:05:15.85
>>260
この程度(>>242)の事も解らないのに「糞コード」ですかそうですか。

以降、無視で。
263デフォルトの名無しさん:2013/08/31(土) 21:07:32.98
>>242はぐぐれ厨の自演
264デフォルトの名無しさん:2013/08/31(土) 21:13:17.15
ぐぐれとかいいなぁ
なーんも考えないでも言えるもんなぁ
265デフォルトの名無しさん:2013/08/31(土) 21:14:02.58
ぐぐれかれー
266デフォルトの名無しさん:2013/08/31(土) 21:15:16.93
Sub UNK()
'A1セルの書式を数値(整数)に変更する
Range("A1").Select
Selection.NumberFormatLocal = "0_ "
ActiveCell.Offset(1, 0).Select
End Sub

整数ならコレでいいんじゃね?
267デフォルトの名無しさん:2013/08/31(土) 21:18:50.63
>>242
文字列で16桁以上の数値が書かれている可能性があるけどそこはどうすんの?
268デフォルトの名無しさん:2013/08/31(土) 21:19:53.49
>>259
>>261
反応がゆとり臭いなお前ら
冷やかし大成功だよくそ寒い
269デフォルトの名無しさん:2013/08/31(土) 21:22:41.77
うわぁ
釣れた宣言する奴ってまだ生息してるんだ。
とっくに死滅したもんだと思ってた。
270デフォルトの名無しさん:2013/08/31(土) 22:47:41.23
和気あいあいとして楽しそうだな
誰か俺の夏休みの宿題も手伝ってくれよ
271デフォルトの名無しさん:2013/08/31(土) 22:49:58.19
ルールは尊重されるべき。
気に入らなきゃ次スレでの★5削除を提案するしかない。
★5の是非はおいといてルール違反の指摘に逆ギレしてたらそら荒れるわw
272デフォルトの名無しさん:2013/08/31(土) 23:09:05.21
あと最近のピラフ沸点低くない?
例の糞コード事件以後、荒らし行為が増えつつあるような気がする。
273デフォルトの名無しさん:2013/08/31(土) 23:15:44.73
ルールと言うが回答者がコードで書いてはいけないなどというものはどこにも書いていない。
>>1★5と言ってるがどう曲解するとコードで書いてはいけないことになるのか。
274デフォルトの名無しさん:2013/08/31(土) 23:20:41.64
あらゴメンナサイ
スレ斜め読みしただけでした。
★5違反じゃ無いのね
275デフォルトの名無しさん:2013/08/31(土) 23:54:15.67
コード回答は別にいいと思うんだけどさ、
糞コード書いてる人って自分で一度でも検証してるのかね?
>>242への回答なんかまるでダメじゃねえ?
276デフォルトの名無しさん:2013/09/01(日) 00:29:56.55
ネタだろ
277デフォルトの名無しさん:2013/09/01(日) 01:00:39.95
糞コードって口では何とでも言えるからな。
それ以上のコードを書いて糞っぷりを証明しないと相手にもならんだろうな。
278デフォルトの名無しさん:2013/09/01(日) 03:19:14.14
証明も糞もないよ
まともに動作しないんだから
279デフォルトの名無しさん:2013/09/01(日) 06:28:05.07
こっちではまともに動作したよ
なんでまともに動作しないか検証したら勉強になるかもよ
280デフォルトの名無しさん:2013/09/01(日) 07:46:39.58
>>256
Sub こんなんはどうだろか()
 Dim x As Range
 ForEach x In ActiveSheet.UsedRange
  If IsNumeric(x.Value) Then x.NumberFormat = "General"
 Next
End Sub
281デフォルトの名無しさん:2013/09/01(日) 07:57:10.40
惜しい…
ForとEachのあいだにスペースさえ入っていれば…
282デフォルトの名無しさん:2013/09/01(日) 09:35:20.24
>>280
これは素晴らしいな。
自分の環境のせいで動作しないのかもしれないのをろくすっぽ調べもしないで糞コード呼ばわりするのと、
余計なことは一切言わずに改良案のコードを提示するのとで、
どちらがまともにコミュニケーション取れそうなのかを一目瞭然で理解出来る素晴らしい例だ。
283ピラフ:2013/09/01(日) 10:04:58.86
      /!/{  / ヾ--r
   _  /     ̄    <_
 _>`´    >>272  ___<_
  >    r‐'" ̄ ̄ ノ ̄ ̄`ヽ、―ニ 二
/ ,    |  `ヽ/ ´`ヽ _  三,:三ー二
 ̄/    |   ノヽ--/ ̄ ,    ` ̄ ̄ ̄
 / /⌒ヽ,|  ミ }  ...|  /!
 レ l d     _}`ー‐し'ゝL _
  | ヽ、_,   _,:ヘr--‐‐'´}    ;ー------
  |/|  \   ノ`ヾ:::-‐'ーr‐'"==-
    ヽ/l/|` ー------r‐'"    ̄ ̄
      |└-- 、__/`\-:、
     __,ゝ,,_____/ \_」 \
なにが糞コードだおら
284ピラフ:2013/09/01(日) 10:09:50.50
    /Y /    r-、  _
    7:::ヽ /V::::/   /::t__    __
   /:/`'  7::::く  /:t-i::/ ./ ̄____:::::/
    l,/   /::/ヽ' ヽ;:`'/    ̄,-, //
       l,/    /:/    /:/
           `'     `'

                     ,;;---−―――――--,,,
                    /              \  >>272「ぐぇああああ!」
 , ;                /                 \
        c==ー^      /li   <こ_ .:; イ.:.:.:.:.::.:\ : :    \:.:.:.::;;;;>'"
    z        ,ィ≦    ム}|/__/´⌒  /.:.:::::.:.:::.:.:.:.:ヽ    .::.:.:;;ィ'"  /
           __ -一   .:fr'/{ミ ,彡/ ,/.:.:.::::/.:.::::ノ_,,,:::-一宀 ´    {
    c== ¨¨       /^{ノ ilil// /⌒´ ̄ ̄ ̄`7´ /     /         ',
       c に≠==ー 厶-  il,/   〃    ー/, {  {     i          ヽ
               `ート、   〃   {i         ヘ. :丶ヽ: : :ヽ: : : : : : : : : : { :\
   C °。 : .      ヘ にヘ,{i   ヽ.i{   . . . . . : : : : ヽ、:\: : : :\: : : : : : : : ヽ. : :
                 : ', ,〉ィヘ  ヾミ{!. : : : : : : : : : : : : : :\. :\: : : 丶: : : : : : : : \
          . ィー- く {^ヽ人   ヘ≧ー‐rー宀7⌒ヽ. : : ヽ、__. : : : : :\. : : : : : : :
         / :` 、: :トこ´  ヾ     ¨>く__ノ _,人___/, ¨¨¨"¬r一=,,___ : :
       / ,        ヘ、__       彡彡 ´ _ ー
      /           . : : : ´¨¨¬     , /
     ./                  ヽ、   /
ハートブレイクショット
285ピラフ:2013/09/01(日) 10:11:15.41
                           ∧_∧
◎               へ          (´<_` )
  \    ≫ ̄ ̄ ̄ ̄彡ヽ ̄ ̄ ̄ ̄ ̄ ̄⌒    \
      彡____人  )  ̄ ̄ ̄ ̄ ̄\       )
 ◎-●一( * *    ヽミ          |.      |
      ((_ _ (( ( ;;-=- ̄=─ ̄ '⌒ヽ〉     | |
 ‘,'.∴・,‘・(ε ((  ヽ-=_二__ ̄    \     | |
  ,'.・∵  ヽ_____ ノ       ̄\     / /
       (__))     ヽ        .\__/_丿
       |  |   >>272   ヽ         .|  |
       |  |______)          |  |
       |  〉三三三[□]三)        |  |
       ノノノノ:::::::::::::::::::::::::::::/         \ ヽ
       ~~~|::::::::::::::::::/:::::::/             \ |
         |;;;;;;;;;;;;;;;/;;;;;;;/            / ノ
        (___|)_|)           `-
286デフォルトの名無しさん:2013/09/01(日) 10:17:07.84
ピラフって優しいキャラかと思ってたのに
実は凶暴なんだな
287ピラフ:2013/09/01(日) 10:17:29.05
      ∧_∧  トンファーキ〜ック!
     _(  ´Д`)        >>272
    /      )     ドゴォォォ _  /
∩  / ,イ 、  ノ/    ∧ ∧―= ̄ `ヽ, _
| | / / |   ( 〈 ∵. ・(   〈__ >  ゛ 、_
| | | |  ヽ  ー=- ̄ ̄=_、  (/ , ´ノ \
| | | |   `iー__=―_ ;, / / /
| |ニ(!、)   =_二__ ̄_=;, / / ,'
∪     /  /       /  /|  |
     /  /       !、_/ /   〉
    / _/             |_/
    ヽ、_ヽ
288ピラフ:2013/09/01(日) 10:24:53.25
       ::                .|ミ|
        ::               .|ミ|           ::::::::
         :::::     ____ |ミ|          ::::
           :: ,. -'"´      `¨ー 、       ::
   ::        /   ,,.-'"      ヽ  ヽ、    ::
   ::     ,,.-'"_  r‐'"     ,,.-'"`     ヽ、 ::
   ::   /    ヾ (    _,,.-='==-、ヽ         ヽ、
   ::   i へ___ ヽゝ=-'"/    _,,>         ヽ
   ::   ./ /  > ='''"  ̄ ̄ ̄               ヽ
  ::   / .<_ ノ''"       ヽ  >>272             i
  ::   /    i   人_   ノ              .l
  ::  ,'     ' ,_,,ノエエエェェ了               /
    i       じエ='='='" ',              / ::
    ',       (___,,..----U             / ::
     ヽ、         __,,.. --------------i-'"  ::
      ヽ、_   __ -_'"--''"ニニニニニニニニヽ   ::
         `¨i三彡--''"´              ヽ  ::
289ピラフ:2013/09/01(日) 10:29:20.69
   / ̄ ̄\
 /   _ノ  \
 |   ( ●)(●)
. |     (__人__)____>>272
  |     ` ⌒/     \
.  |       /( ○)  (○)\
.  ヽ     /  ⌒(n_人__)⌒ \
   ヽ   |、    (  ヨ    |
   /    `ー─−  厂   /
   |   、 _   __,,/,     \ ドス
    |    /   ̄   i;;三三ラ´ |
    |    |   |    ・i;j:   |  |
290デフォルトの名無しさん:2013/09/01(日) 10:35:47.61
え、お前らのExcelってセルの書式を数値とか標準にするだけで
値の型まで数値型に変わるの?
ふーん
291ピラフ:2013/09/01(日) 10:43:59.42
>>290
変わらないよ。もしお前が>>242で、値の型まで変わって欲しいと
思ってるならそれを改めてみんなに伝えるべきだよ。こうなってほしいと
すなおに伝えるべきだよ。自分がどう思ってるのかをきちんと伝え切れてないから
生じた認識の違いでしかないんでそれをもとにどうこういったってくだらないだけだよ。
292デフォルトの名無しさん:2013/09/01(日) 12:32:04.08
ピラフってなんで桃白白の匂いがするの?
293デフォルトの名無しさん:2013/09/01(日) 12:44:38.61
どっちもクズの臭いがするだけだよ
294デフォルトの名無しさん:2013/09/01(日) 13:39:39.78
白桃入りのピラフってうまいの?
295デフォルトの名無しさん:2013/09/01(日) 14:26:56.76
クズの味しかしねーよ
296デフォルトの名無しさん:2013/09/01(日) 15:34:48.64
>>292
それはね、同いt…うわ何をするやめr…
297デフォルトの名無しさん:2013/09/01(日) 18:37:35.35
つまり婿養子になったのか?
298デフォルトの名無しさん:2013/09/01(日) 21:45:16.89
>ピラフさんへ

馬鹿どもの妄言集に惑わされず、コードを書いてください。

コードから救われる人もイますし、コードで何か発見できる場合もあります。

馬鹿どもはひとつのやり方に固執し、「コードを書く」という違う観点からみるということもできない、
おおよそ匿名掲示板にふさわしくないノータリンです。

ピラフさん応援してますよ!
299デフォルトの名無しさん:2013/09/01(日) 21:48:17.02
>>298
>>1★5
300デフォルトの名無しさん:2013/09/01(日) 22:04:24.56
いつも自演ご苦労様です
301ピラフ:2013/09/01(日) 22:21:00.64
>>298
何言ってんだお前、はい論破。
302デフォルトの名無しさん:2013/09/01(日) 22:39:53.17
どんな議論も

>何言ってんだお前、はい論破。

でお終いか。こいつぁ楽でいいや
303デフォルトの名無しさん:2013/09/01(日) 23:13:46.27
はいはい、夏休みは終わりましたよ
304デフォルトの名無しさん:2013/09/02(月) 00:34:36.05
まだ終わってないっての
305デフォルトの名無しさん:2013/09/02(月) 04:46:21.21
いつの間にこんな荒れたスレになったんだ、去年とか覗いた時はもっとみんな紳士だったじゃないか。
306デフォルトの名無しさん:2013/09/02(月) 07:01:36.72
クソの山ですな
307デフォルトの名無しさん:2013/09/02(月) 22:49:05.26
2010で右クリックで出る各メニューを無効化/有効化とか名称変更を行いたいのだけれど
コマンドID一覧とかってどこに書いてるでしょうか?
MSDNのメソッドの説明を見に行ってもIDを設定するとしかかれてなくて、それに対応するIDは何?って感じで詰まっています。
308デフォルトの名無しさん:2013/09/02(月) 23:19:30.54
面白そうと思って、調べたら。
エクセル 右クリックメニューの変更
 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1316608278
右クリックメニューに追加
 http://officetanaka.net/excel/vba/tips/tips30.htm
セルを右クリックした時のショートカットメニューを変更
 http://excel-ubara.com/excelvba/EXCELVBA223.html
等がヒット、詳しくないから質問されても答えられないし、試してないけど、参考になるかな。
既知だったら勘弁。
309デフォルトの名無しさん:2013/09/02(月) 23:30:56.69
>>308
サンキュー、その辺もひと通り目を通したんだけど○○を追加すれば出来るしか書いてなくて
その○○に当たるものは他に何があるのか?が判らない状態なんです。

例えば
CommandBars("Cell").Controls
この”Cell"でセルのコントロールを変更出来るのだけれど、じゃあ他のオブジェクトは?となりますし
FindControlにIDを指定したらそのコントロールを変更出来るのだけれど、IDのリストは?ってなると
調べても全然出てこないという・・・
310デフォルトの名無しさん:2013/09/02(月) 23:39:00.52
コマンドバーのID番号表だったら、
 http://www2s.biglobe.ne.jp/iryo/2vba/sankou.html
にあったけど、これの事だろうか?
311デフォルトの名無しさん:2013/09/02(月) 23:44:53.69
>>310
見てみるとアイコンのIDみたいだ、後Excelのバージョンによって番号が変わったりするそうだから
古いやつだとダメなんだ…
Controlsに追加するべき番号であればMSDNフォーラムに97の一覧があるのは見つけたんだが…
312デフォルトの名無しさん:2013/09/03(火) 00:16:03.95
Excel 2000の、組み込みのコマンド バー コントロールの ID 番号の一覧が、
 http://support.microsoft.com/kb/213552/ja
にあった、種類はこれの事かな?、2010のは見つからなかった。
役に立てなかった勘弁。
313デフォルトの名無しさん:2013/09/03(火) 00:20:48.29
>>312
thx、MSに問い合わせるしかないか…
314デフォルトの名無しさん:2013/09/03(火) 01:03:10.54
ご覧になってるかどうか判りませんが、興味で検索を続けた所、
 コントロールID 一覧(Office 2010)
 http://www.ka-net.org/office/of27.html
を見つけたので、ご一報。
それでは、落ちます。
315デフォルトの名無しさん:2013/09/03(火) 01:24:47.44
>>314
thx,そこのはダメだった。
316デフォルトの名無しさん:2013/09/03(火) 02:04:28.27
317デフォルトの名無しさん:2013/09/03(火) 07:39:02.55
お、ここは検索代行してくれんのか
318デフォルトの名無しさん:2013/09/03(火) 12:31:39.37
ざーとらしい
319デフォルトの名無しさん:2013/09/03(火) 13:12:40.59
いいじゃん
320デフォルトの名無しさん:2013/09/04(水) 23:50:37.46
質問です。

For x = 1 To 1000
y = ((169902 - 1 + 1) * Rnd + 1)
If 0 < y < 35 Then
→ Cells(x + 1, 4).Value = 149
ElseIf 35 <= y < 77 Then
Cells(x + 1, 4).Value = 124
ElseIf 77 <= y < 108 Then
・・・・
end if
next x
というプログラムを組んだのですが、yの数値がどんなに大きくても、必ず矢印のところでfor構文が終了してしまいます。
理由がわからないのですが、何が原因だか教えていただけませんか?
321デフォルトの名無しさん:2013/09/05(木) 00:10:35.29
>>320
○ If (0 < y) And (y < 35) Then
× If 0 < y < 35 Then
322デフォルトの名無しさん:2013/09/05(木) 00:14:32.63
>>321
出来ました。ありがとうございます。
323デフォルトの名無しさん:2013/09/07(土) 15:17:59.68
「オフィスの達人〈5〉VBA活用術―Excel/Word/Access/PowerPoint/Outlook Office 2003対応」

この本のように
Officeのいろんなソフトを連携して使うためのVBAのコードが解説されてる本ってないですか?
VBAといやほとんどがExcel、たまにAccess、まれにWordの本しかなく
連携で使うのを解説してる本って、上の本以外皆無。
上の本は古いしもう買えないので最近は出てないの?
324デフォルトの名無しさん:2013/09/07(土) 15:51:33.38
Amazonのマケプレで買えるじゃん高いけど

でも連携ってCreateObjectかGetObjectでアプリ開いて操作するだけじゃないの?
それとも本一冊費やして説明する程の何かがあるのかな
325デフォルトの名無しさん:2013/09/07(土) 18:15:28.57
Excelは仕事で使うものの、マクロやVBAなど全く分からないので
どうか教えてください。
スペックはXPでExcelは2003です。

現在B1セルに○月1日と日付を入れ、シート名を1日としたものがあります。
これを自動で複製して、B1セル日付を○月2日 ○月3日…
シート名を2日 3日…となるように、一ヶ月分のbookを作りたいと思っています。
また、その際に、シート名の日付が日曜・祭日に当たる場合、
シート名に色を付けたいので、とりあえず祝日リストは別シートで作ったのですが
肝心のコードが全く分かりません。

一応ウェブを漁って、それらしいコードを拾って動かしてはみたのですが
いまひとつ、作りたいものがうまく作れないので
どうかよろしくお願いいたします。
326デフォルトの名無しさん:2013/09/07(土) 18:22:06.18
因みにB1セルの日付はシリアル値で入れ、
書式で○月○日と表示していて
日付が日曜・祭日に当たる場合は赤文字になるよう
条件付き書式で設定してあります。
327ピラフ:2013/09/07(土) 18:22:40.30
>>325
ナイスクエッションだ!ピラフも考えみる!!
328デフォルトの名無しさん:2013/09/07(土) 18:46:34.45
こりゃ荒れるぞ
329デフォルトの名無しさん:2013/09/07(土) 18:55:33.80
>>328
うん、もうどうしたらいいやら・・・
330ピラフ:2013/09/07(土) 19:17:03.79
考えたけどピラフわかんなかった。
331デフォルトの名無しさん:2013/09/07(土) 19:55:07.64
>>325
全部いっぺんに作ろうとすると大変。
これらのコードが書けるのであれば後は組み合わせていけば作れると思うけど。
・シートの追加
・シート名の設定
・シート名?タブ?の色設定
・セルの値設定
・曜日の取得

コードが全く分からないからコード作れ!!!!っていうのはこのスレのルール>>1★5に反してるからNG。
332デフォルトの名無しさん:2013/09/07(土) 19:55:31.38
325です、すみません、私のようなド素人が来てはいけなかったいけなかったでしょうか…
でもどこで聞けばいいのか分からないし、本当に困っているので
誘導若しくはヒントだけでも教えていただけると助かります。
お願いします。
333デフォルトの名無しさん:2013/09/07(土) 20:02:16.84
スレチかもしれませんが、WEEKDAYという関数について教えてください

=WEEKDAY(2013/9/7)と入れると「2」が返ってくる。
A1に=DATE(2013,9,7) その後=WEEKDAY(A1)とやると「7」が返ってくる

なぜ返ってくる値が違うのでしょうか?お願いします
334デフォルトの名無しさん:2013/09/07(土) 20:04:38.39
>>331
レスありがとうございます、助かります!

仰るとおり、各パーツごとなら調べたコードで動いたのですが
その組み合わせ方がどうもよく分からないんですよね…

もう少し自分で動かしてみて、
コードを添削・改良していただく事はできますでしょうか。
335デフォルトの名無しさん:2013/09/07(土) 20:05:54.76
>>332
ウェブを漁って、それらしいコードを拾って動かしてはみた
のに全くわからないのなら、俺らにどうしろというんだ?

>>333
「/」は除算記号だしスレチだ
336デフォルトの名無しさん:2013/09/07(土) 20:07:23.95
337ピラフ:2013/09/07(土) 20:07:25.87
>>334
いいよ。ピラフがやってあげちゃうよ。
338ピラフ:2013/09/07(土) 20:08:14.20
>>335
お前は首でも吊ってろ。
339sage:2013/09/07(土) 20:08:26.09
>>335
なるほど。ありがとうございました!
そしてスレチすみませんでした
340ピラフ:2013/09/07(土) 20:21:48.91
>>335
ちっまたこのガキに質問潰されたわ
341デフォルトの名無しさん:2013/09/07(土) 21:13:25.23
>>336
誘導ありがとうございます。
そちらで聞いてみようと思います。
ありがとうございました。
342デフォルトの名無しさん:2013/09/08(日) 00:08:27.68
>>336
「VBAなんでも質問スレ」では、
「Excel VBA の話題なのになんでここに誘導されて来るんだよw 」
との意見。
これをどう思う?
343デフォルトの名無しさん:2013/09/08(日) 01:34:11.69
そこの住人はExcelVBAはVBAじゃないと思っている。



じゃーExcelVBAってどういうVBAなんだ?
344デフォルトの名無しさん:2013/09/08(日) 02:21:59.56
>>342
ここは丸投げ禁止だから妥当だと思う
345デフォルトの名無しさん:2013/09/08(日) 02:25:08.03
Excel VBAのスレがあるのに
なんでこっちに誘導されてくるのかってことだろ。
俺は別にどちらでやってもいいとは思うが
いつもけたたましく>>1★5と吠えてるあの荒らしは死ねばいいと思っている。
346デフォルトの名無しさん:2013/09/08(日) 02:53:57.92
もう向こうが本スレでいい
こっちは永遠にテンプレの議論でもしてればいい
347デフォルトの名無しさん:2013/09/08(日) 04:21:11.77
向こうはコードつくってて楽しそうだなぁ
348デフォルトの名無しさん:2013/09/08(日) 04:24:14.91
どっちでもいいよ。
ただ今は★5がありそれを肯定する人間が居る。
そんな中俺ルールで好き勝手やり始めたら荒れるのは当然だよな。
349デフォルトの名無しさん:2013/09/08(日) 04:34:31.73
★3★4もどうかと思うわ
350デフォルトの名無しさん:2013/09/08(日) 04:42:51.37
何でも許すと文章は質問なんだけど結局コード作成依頼スレになって
質問スレじゃなくなるからこのままでいいと思う。
別にあっちはあっちで楽しそうと思えるのならそれでいいんじゃね?
そっちに行けばいいんだから。
351デフォルトの名無しさん:2013/09/08(日) 04:49:22.11
そうだね、>>1のテンプレに性格的問題があるから
このスレはもう糞スレ決定だね
352デフォルトの名無しさん:2013/09/08(日) 08:06:26.62
だな。俺も向こうに行くわ。
質問にコード絡みのものがある場合は一々荒さんでも向こうに誘導すればいいだけだしな。
353デフォルトの名無しさん:2013/09/08(日) 08:15:25.01
でもコードで語ってるというより、コードを押し付けてるようにしか見えないw
354デフォルトの名無しさん:2013/09/08(日) 08:29:41.76
つくづく憐れなやつだな
355デフォルトの名無しさん:2013/09/08(日) 08:30:12.65
>>349
うわ、本当だね。

★4 とりあえず、Excelのインスタンスを作らずにVB6で出来ることは全てスレ違いだと思ってください。

要するに、通常の代入や四則演算、分岐や繰り返し処理が入ると全部スレ違いだね。
それがないとExcelVBAの機能に付いて説明が出来ないものを除くとも何も書かれていないものね。
しかもコードどうの以前のところだから普通の説明でもダメか。

うわー残念だなー。でもテンプレは守らないとなーw
356デフォルトの名無しさん:2013/09/08(日) 08:46:14.62
★3〜4は、Excel VBAとは関係のない質問(簡単なテキストファイル解析をVBAで行うなど)への対策
★5はコードクレクレ君への対策
これに尽きる。詳しくは
●EXCEL・VBA質問スレ Part2●
http://pc11.2ch.net/test/read.cgi/tech/1180192018/
あたりの過去ログを読んでね。
357デフォルトの名無しさん:2013/09/08(日) 10:04:32.77
もうVB6が広く使われている時代じゃなくなってるのに
「VB6で出来ることはスレ違い」って頭固すぎでしょ
358デフォルトの名無しさん:2013/09/08(日) 10:21:41.13
VB6スレは去る9月1日、長い歴史に幕を閉じました(涙)

だからVB6の次スレが立つまでは、ある程度VBも出来る事もOKにしない?
「実行環境がExcelならOK」とか。
359デフォルトの名無しさん:2013/09/08(日) 10:23:53.03
>>358
訂正
ある程度VBの質問もOKって事にしない?
360デフォルトの名無しさん:2013/09/08(日) 10:30:00.96
テンプレには抜本的な改修が必要だな。
だが、このスレではテンプレでそう書いてあるんだから仕方がない。
次スレでは修正するとして、このスレでは全てスレ違いになるので、
何でもスレの方でやるしかないな。
361デフォルトの名無しさん:2013/09/08(日) 11:09:44.11
>>358
何言ってんだ?

VBプログラマ質問スレ(Ver.6.0 まで) part63
http://toro.2ch.net/test/read.cgi/tech/1378020423/
362358:2013/09/08(日) 12:01:20.22
>>361
うわ、おれ恥ずかし過ぎw
363デフォルトの名無しさん:2013/09/08(日) 12:10:39.16
364デフォルトの名無しさん:2013/09/08(日) 12:49:13.97
はいはい
365デフォルトの名無しさん:2013/09/08(日) 13:46:24.21
>>363
経緯はどうであれ、今そうテンプレに書いてあるんだから仕方がない。
次スレでテンプレ改修してくれ。それまでは何でもスレに誘導してくれ。
366デフォルトの名無しさん:2013/09/08(日) 14:29:14.35
今のテンプレのどこが問題なのかわからんが。
要はクレクレ君も受け入れたいって話?
367デフォルトの名無しさん:2013/09/08(日) 15:00:44.52
>>366
★5の解釈が曖昧な事
クレクレは論外として、やる気はあるけど全く分からず結果丸投げとか。
こういう質問への対応を巡って荒れる事が多い。
368デフォルトの名無しさん:2013/09/08(日) 15:01:31.36
経緯を理解しようともしないのか。
人の話を聞こうともしないやつに指図されても従う奴はいないと思う。
369デフォルトの名無しさん:2013/09/08(日) 15:07:03.08
ここは変える必要ないよ
テンプレに沿わない質問なんかはなんでもスレに回せばいいじゃん
370デフォルトの名無しさん:2013/09/08(日) 15:40:20.50
その通り
コードでの回答も結果クレクレ対策の阻害になる可能性があるし、
VB6で出来る事は1命令でもExcelの機能から外れる所がある場合は
Excelの機能とは無関係なのでその部分を飛ばして話さなければならない。
守れない様であれば何でもスレでやれ。
371デフォルトの名無しさん:2013/09/08(日) 16:00:57.40
クレクレ対策なんて、答えたい人は答えて
答えたくない人は単に無視していればいいのに、
このスレでは質問者も回答者もことごとくけなして潰すのが
ほぼデフォになってるし、そりゃー機能不全起こして荒れるわな。

スレ奉行は放っておいて、早めに新スレたてた方がいいかもな。
372デフォルトの名無しさん:2013/09/08(日) 16:17:56.82
>>371
いつも同じ事を言うだけなんだよな。
それを許すと質問スレじゃなくなるって言われ続けてるのに。
新スレというよりなんでもスレで充分だろ。
373デフォルトの名無しさん:2013/09/08(日) 16:22:27.92
むしろ、許さない人がずっと張り付いているから質問スレとして成立していないように見える
374デフォルトの名無しさん:2013/09/08(日) 16:36:24.96
>>372
このスレの存在意義は?
「なんでもスレ」は何でも受け付けると言う事だよね、質問も含めて。
このスレ意味無いじゃん。
375デフォルトの名無しさん:2013/09/08(日) 16:38:29.55
>>373
そうか?
許すやつがいるからコード作成依頼が来てるわけだが。
コード作成依頼を質問と言い張るならいつまでたってもこの問題は解決しないと思う。
376デフォルトの名無しさん:2013/09/08(日) 16:52:39.19
コードがわからないから質問したくなるのが普通の心情だろうに、
コードがわかっているけど敢えて質問するというニッチな質問者ばかり追い求めようとするから
スレの意義が現実離れして存在意義も希薄になる。
その辺に対する反省がない限り、機能不全状態は続くと思う。
377デフォルトの名無しさん:2013/09/08(日) 16:55:57.61
コードが書けなくても質問に答えたいのも普通の心情だろうが
わかってやれよ
378デフォルトの名無しさん:2013/09/08(日) 16:58:58.88
つまり、コードが書けないからコード作成依頼は許せない、と。そういうことか。
379デフォルトの名無しさん:2013/09/08(日) 17:10:53.16
>>376
このスレのルールはヒント出せばコードを書ける人を対象にしてるだけなんだが。
そのルールを守れないということなら別のスレでやればいいだけなんだが。
掲示板がどういうものか理解できてないとしか言えないんだが。
380デフォルトの名無しさん:2013/09/08(日) 17:37:30.32
こう言うバカは一度干してやらないと分からんよ。
こいつ1匹残して皆なんでもスレに移行すればいい。
381デフォルトの名無しさん:2013/09/08(日) 18:14:34.52
大したヒントも出さずに底意地の悪いレスばかりしてるくせに、どの口が言うかw
382デフォルトの名無しさん:2013/09/08(日) 18:23:12.78
まぁVB6で出来ることを書いてはいけない時点で
殆どがスレ違いになるだろうから
必然的にみんな何でもスレの方に行くだろうけどな
383デフォルトの名無しさん:2013/09/08(日) 18:28:52.45
>>382
VB6で出来ることかどうか判断できるようなやつは
こんなとこで質問なんてしないって
384デフォルトの名無しさん:2013/09/08(日) 18:32:58.49
つーかExcel VBAで出来る事って、ほぼ全てVB6から出来るだろ
どういう線引きなんだよ?
385デフォルトの名無しさん:2013/09/08(日) 18:34:16.74
>>383
つまりテンプレとして役に立ってない訳だ
386デフォルトの名無しさん:2013/09/08(日) 18:37:28.71
スレタイにひかれて罠にかかった質問者を
スレ違いだと寄ってたかっていじめ倒すためのテンプレとして
役に立っている。マジ糞スレだなぁ。
387デフォルトの名無しさん:2013/09/08(日) 18:39:05.56
388デフォルトの名無しさん:2013/09/08(日) 18:42:22.44
>>387
で?
389デフォルトの名無しさん:2013/09/08(日) 18:46:11.33
あ、そのひと質問に対して過去ログ読めとかググれとかしか言えないんすよ
あとコード書いてる人をけなしたりとか
390デフォルトの名無しさん:2013/09/08(日) 18:47:53.18
くれくれ君に回答したくなければ無視したらいいだけなのに。
391デフォルトの名無しさん:2013/09/08(日) 18:53:39.73
>>386
たしかに
392デフォルトの名無しさん:2013/09/08(日) 18:55:48.86
>>391
だな、改定案考えようぜ
393デフォルトの名無しさん:2013/09/08(日) 19:03:40.90
テンプレに何か書くと、すぐにそれを拡大解釈して盾に取って「スレ違い」とかぐだぐだ言いそうな人が居るから
無駄な文言は一切入れない方がいいと思う。
394デフォルトの名無しさん:2013/09/08(日) 19:09:48.20
テンプレ変えようって話はまとまらないと思うよ
なんでもスレに行けばいいじゃん
395デフォルトの名無しさん:2013/09/08(日) 19:17:34.61
>>394
だな。スレのルール守れないやつがテンプレ考えてもどうせルール守らないだろうし。
396デフォルトの名無しさん:2013/09/08(日) 19:21:51.61
なんでもスレでもいいけど、「Excel VBA なんでも質問スレ」があってもいいと思う。
397デフォルトの名無しさん:2013/09/08(日) 19:44:31.01
いや、むしろこのウダウダ言ってる荒らし一人を出入り禁止にすればこと足りる訳で
398デフォルトの名無しさん:2013/09/08(日) 21:36:22.34
>>397
そっか〜、どうやんのか知らんけどがんばってくれ〜
399デフォルトの名無しさん:2013/09/08(日) 22:15:14.96
いや、テンプレに追加するだけだろ。
元々テンプレ絶対論を唱えたのはその荒らしだから
本人が守らない訳には行くまい。
400デフォルトの名無しさん:2013/09/08(日) 22:51:32.88
>>398
簡単だよ、スルーするだけ
401デフォルトの名無しさん:2013/09/09(月) 09:50:22.55
なにかにつけて悪意的なレスばかりして、質問者にも回答者にもストレスをかけまくる面子が常厨

常厨への不満爆発 ←いまここ

今のアホテンプレは論外だけど、多少テンプレを変えたとしても、ExcelVBAスレである限り
同じような面子が継承されるからやっぱり荒れやすいんだうなぁ。
Excelは扱えてVBAにも興味あるけど、コードを書いたり読んだりするスキルはまだいまいちの人も
集まりやすいし、その中からググレカスとか糞コードとか言って偉ぶりたいだけの口だけ番長も発生しやすい。

現存のなんでもスレの方が、範囲が広い分、様々なスキルの人が集まって風通しが良さそうだ。
敢えてExcelVBAを立てようとしなくても良いように思えた。>> 396
402デフォルトの名無しさん:2013/09/09(月) 10:38:26.90
ExcelのVBAでいろんなExcelファイルから抽出・加工・編集した複数の表データなどを
Wordに貼り付けるというマクロを組みたいです。

もちろん表の大きさに応じて、Wordの何ページ目のどこに貼るかというのもVBAでコードを組んで自動処理したいです。

そのために「覚えるべきこと」は何ですか?
この目的に沿う「本」や「Web解説サイト」はどこですか?
403デフォルトの名無しさん:2013/09/09(月) 10:44:06.69
誘導↓

VBAなんでも質問スレ
http://toro.2ch.net/test/read.cgi/tech/1342087380/
404デフォルトの名無しさん:2013/09/09(月) 11:16:22.96
下記を実行すると「型が一致しません」というエラーが出てしまいますが
理由が分かりません。
ご教示ください。

シート上のデータはすべて文字列で100×100くらいにびっしり埋まってます

Dim rng As Range
Dim c As Variant

Set rng = Cells(1, 1).CurrentRegion.Columns(2).Offset(1, 0)

For Each c In rng
 MsgBox c.Value
Next c
405デフォルトの名無しさん:2013/09/09(月) 11:21:17.57
cがセルではなく列になっているからだ。
406デフォルトの名無しさん:2013/09/09(月) 11:24:25.04
例えばこうしたまえ

Sub test()
Dim rng As Range
Dim c As Variant

Set rng = Cells(1, 1).CurrentRegion.Columns(2).Offset(1, 0)
rng.Select

For Each c In Selection
MsgBox c
Next c
End Sub
407デフォルトの名無しさん:2013/09/09(月) 12:00:40.63
>>405
>>406
早速ありがとうございます!
columnsはセルの配列にはならないということでしょうか?
rng.addressを調べると"B2:B100"と出るのですが、
素人なのでこの辺りがどうもよく分かりません・・・

selectionはなるべく使いたくないんです。
実行時にシートがアクティブになっている保証がないので・・・
408デフォルトの名無しさん:2013/09/09(月) 12:32:06.47
>>404
For Each c In rng

For Each c In rng.Cells
に修正してもダメなのかな?
409デフォルトの名無しさん:2013/09/09(月) 13:34:53.98
>>404
Cells(1, 1).CurrentRegion.Columns(2).Offset(1, 0)
が何を対象としたいのかわからん
Cells(1, 1).CurrentRegion.Offset(1, 0)
で良いんじゃないのか?
410デフォルトの名無しさん:2013/09/09(月) 20:57:39.92
win7 excel2010

ステートメント等にカーソル合わせてF1キーを押せばヘルプが表示されますよね?
それで
Application.GetOpenFilename(〜
で GetOpenFilenameの部分にカーソル合わせてF1を押したんだけど、
該当結果はありません
ってヘルプの目次の部分に出るし、Officeのテキストボックスに入れても同じように
GetOpenFilenameの検索結果はありませんでした
って出てくるんでどうすればヘルプが出るようになります?

一応、コンパネのアプリケーションのアンインストールで右クリック→変更→
から機能の追加/削除ではexcelの部分は全てインストールされてることは確認し
修復→OS再起動は試したんですがかわりなしです。
411デフォルトの名無しさん:2013/09/09(月) 21:32:45.19
知らんけどたぶんスレ違いだよ(鼻ほじりながら
412デフォルトの名無しさん:2013/09/09(月) 21:54:09.62
>>410
おれもだけどネットで調べてるよ(鼻ほじりながら
413デフォルトの名無しさん:2013/09/09(月) 21:57:40.74
414デフォルトの名無しさん:2013/09/09(月) 22:03:49.11
うむ (花ほじりながら

http://litz.sakura.ne.jp/upload/src/up0854.png
415デフォルトの名無しさん:2013/09/09(月) 23:08:17.77
>>413
>>414

ありがとう m(__)m。表示することが出来るようになりました

>>412
ネットで調べるのは良いんだけど、ヘルプが正しく表示されないのは気分悪いっしょ
416デフォルトの名無しさん:2013/09/10(火) 01:52:28.30
WindowsXPsp3+Office2010です。
あるユーザーフォーム(UserForm1とします)で、
他のユーザーフォーム(Userform2とします)が起動中かどうかを確認するため、
Userform2.visibleの値をチェックするコードを作ったのですが、
これを実行すると、なぜかチェックを行った時点で、
UserForm2のUserForm_Initialize()部分に書かれたコードが勝手に実行されてしまいます。

具体的なコードとしては、
【UserForm1】
Private Sub UserForm_Initialize()

If UserForm2.Visible = True Then
MsgBox "UserForm1起動中"
Else
MsgBox "UserForm1非表示"
End If

End Sub

【UserForm2】
Private Sub UserForm_Initialize()

MsgBox "UserForm2イニシャライズ"

End Sub

これでUserForm1を起動すると、"UserForm2イニシャライズ"のメッセージが出てしまいます。
ただ単にUserForm2が起動しているかどうかだけを確認したいのですが、
どのような処理を行えば良いのでしょうか?
よろしくお願いします。
417デフォルトの名無しさん:2013/09/10(火) 02:22:38.24
>>416
UserFormsをループしてUserForm2が含まれてるかどうか確認すれば良いんじゃね

自分で開いたかどうか管理して、フラグなりそのフォームへの参照なり持っとく方が良いけどな
まあ、その方法はEXCEL関係ないからよそで聞いてくれ。つか最初の方法もEXCEL関係ないっちゃ関係ないけど
418デフォルトの名無しさん:2013/09/10(火) 16:31:16.42
選択してる範囲のセルで
値が重複していないもののみにつき
ある処理を実行したいときはどういうコードを書きますか?

例えば50セル選択してて、半分近くが「東京都」、あと「大阪府」「北海道」「広島県」「神奈川県」「福岡県」「沖縄県」と種類は7種しかなく
この7つの都道府県についてだけ各シートを作り(Add)、都道府県情報を別ブックから抽出して表示させる、みたいな。

「選択セルの中から重複していない値だけを取り出す」という部分だけでいいから、教えてケロです。
419デフォルトの名無しさん:2013/09/10(火) 16:56:45.51
>>418
コード作成依頼なら別スレでやってくれ。

自分で何とか解決したいのなら
・選択中のセルの範囲を取得する
・重複していない値だけ取り出す
が解決できればいいんじゃね?
因みに「重複していない値だけ取り出す」はどのように考えてるのかな?
420418:2013/09/10(火) 17:08:10.39
「重複していない値だけ取り出す」は
もちろん頭で考えています。
421デフォルトの名無しさん:2013/09/10(火) 17:08:34.95
言語関係ないアルゴリズムの話だな

たとえば、上から順番に見て行って、該当都道府県のシートが無ければ追加
有ればなにもしない、っていう処理を最後まで繰り返せば良い
使い捨ての処理なら俺ならこれで済ます
422418:2013/09/10(火) 17:15:58.67
こんな関数を作ってください。

引数1 セル範囲
引数2 単一セル
返り値 単一セルがセル範囲に存在する個数

そうすれば以下で解決するから。

For Each testCell in Selection
   If FUNCTION(Selection, testCell)=1 Then
      [処理]
   End If
Next testCell
423デフォルトの名無しさん:2013/09/10(火) 17:26:19.25
>>422
コード作成依頼は別スレ行けって。
424デフォルトの名無しさん:2013/09/10(火) 17:32:47.33
ワークシート関数にありそうな気がするが
425418:2013/09/10(火) 17:47:56.09
>>424
Countifがあるね。
でもWorksheetfunction.Countifで対処しようとしても、ちょっと動作が違うからね。
426418:2013/09/10(火) 17:48:42.60
>>423
厨はアッチ行って。
427デフォルトの名無しさん:2013/09/10(火) 17:51:45.09
>>426
>>1★5
428デフォルトの名無しさん:2013/09/10(火) 19:22:37.31
そんなに出て行って欲しけりゃ普通に誘導すりゃいいのに
見事なひねくれっぷりだねえ
429デフォルトの名無しさん:2013/09/10(火) 19:39:13.60
>>418だったら、自分だったらワークシート名をキーにして↓みたいな感じにつくるかも

セル範囲の分だけループする
 いまあるワークシートの枚数だけループする
  セルの値と同じワークシート名があった場合はなにもしない
  セルの値と同じワークシート名が見つからなかったら、ワークシートを追加してシート名をセルの値にする

いまあるワークシートの枚数だけループする
 ワークシート名と県名が一致したら、都道府県別情報を別ブックから抽出してどっかにコピーする
430418:2013/09/10(火) 19:44:00.25
>>429
ワークシートは忘れてください。
具体例を出したほうがイメージしやすいと思った説明の工夫で
実際はワークシートは作らない。

「選択セルの中から重複していない値だけを取り出す」という機能だけ、どうコードに効率よく書くにはどうすればいいかが知りたい。
431デフォルトの名無しさん:2013/09/10(火) 19:52:27.82
>>430
「選択セルの中から重複していない値だけを取り出す」処理をどうやるのか考えがあるんでしょ。
それをコードに書き出せばいいんじゃないの?
コードで分からないことがあるんだったらどういう部分が分からないのか質問すればいい。
432デフォルトの名無しさん:2013/09/10(火) 20:01:50.75
>>430
忘れて欲しい例えなんか書くなよ

あんまりスマートじゃない方法だったら思いつくんだけどなぁ
433418:2013/09/10(火) 20:14:44.53
>>432
ぜひお願いいたします。
434デフォルトの名無しさん:2013/09/10(火) 20:33:20.57
ちょっと時間がないんで概略だけ

セルの値を変数に格納
セルの値をいったんクリアしとく
Findで選択範囲に変数と同じ値があるか判定(ないならNothing)
セルに変数値を入れてもとに戻しておく

If FUNCTION(Selection, testCell)=Nothing Then

みたいな感じでどうにかならないか
435418:2013/09/10(火) 20:43:06.37
>>434
嗚呼素晴らしい哉!
いったんクリアでそれが単一の値か調べるのですか。
ちょっとまわりくどいけどその部分は関数にすればすっきりとしたコードになりますね。
436デフォルトの名無しさん:2013/09/10(火) 20:54:42.13
元のデータを弄っちゃうのは危険な臭いがする。
クリア直後にエラーが発生したら元のデータが無くなる可能性があるんだけど。
別シートにコピーして操作したほうが安全。
437デフォルトの名無しさん:2013/09/11(水) 04:30:15.65
ディクショナリ使って処理した都道府県格納して行くのが妥当だけど
問題はVBAにディクショナリが無いw
スクリプティングの使うか、コレクションで自作するか、ワークシート使うか、配列で頑張るか
438デフォルトの名無しさん:2013/09/11(水) 08:07:29.64
CreateObject("Scripting.Dictionary")
じゃダメなのか
439デフォルトの名無しさん:2013/09/11(水) 08:21:01.04
このスレじゃダメだね
完全にスレ違いだ
440デフォルトの名無しさん:2013/09/11(水) 11:47:59.65
と、無知が申しております
441デフォルトの名無しさん:2013/09/11(水) 13:02:34.45
>>418
関数にしないといけないのかな、
If FUNCTION(Selection, testCell)=1 Then を
If WorksheetFunction.CountIf(Selection, testCell) = 1 Then
じゃいけないのかな? >>425 での ”ちょっと動作が違う”のはどこら辺。
442418:2013/09/11(水) 13:27:09.72
>>441
それだと1個しか存在しない県(マイナーな青森県みたいな)だけ処理することになり
東京都とかSelection内に複数ある都道府県は処理を行わなくなってしまう。
443デフォルトの名無しさん:2013/09/11(水) 13:43:12.44
>>418 「選択セルの中から重複していない値だけを取り出す」のが問題だったのでは。
追加の処理として「複数ある値」の時も処理をするなら、
もう一つ if文を追加して、個数が0より大きい時の処理を付け加えては。
444デフォルトの名無しさん:2013/09/11(水) 13:44:19.09
>>422
× 返り値 単一セルがセル範囲に存在する個数
○ 返り値 単一セルがそれまでのセル範囲に存在する個数
445418:2013/09/11(水) 13:48:09.26
>>422は訂正だ。

引数 データ(DB用語でいうレコード)たくさん
返り値 そのうち重複しないデータ
446418:2013/09/11(水) 14:00:19.20
世紀の大発見をした。

For Each testCell in Selection
If WorksheetFunction.CountIf(Selection, testCell) > 1 Then
   testCell=""
Else
   [処理]
End If
Next testCell

これで完成だ。
447418:2013/09/11(水) 14:05:49.80
われながら天才だ。これで東大に合格だ。
448デフォルトの名無しさん:2013/09/11(水) 15:13:27.35
Excel2007以降には「重複の除去」って機能があるんだけど
ここのみなさんは未だに2003以前をお使いなんですか
449デフォルトの名無しさん:2013/09/11(水) 15:41:03.71
うちは2002だからRemoveDuplicatesなんて邪道だ
450デフォルトの名無しさん:2013/09/11(水) 16:44:54.13
その手のExcelの一見便利そうな機能はすぐ罠にハマるからきらいだ
451デフォルトの名無しさん:2013/09/11(水) 16:51:30.46
頭の固くなったジジイみたいな事やめなさい
452デフォルトの名無しさん:2013/09/11(水) 17:53:48.89
罠とか言うならそもそもExcelを使うのが間違い
453デフォルトの名無しさん:2013/09/11(水) 18:04:05.86
人生なんて罠だらけだぞ
今すぐ自殺した方が安全
454デフォルトの名無しさん:2013/09/11(水) 18:58:05.23
>>453
先ず隗より始めよ

って諺がありますよ
455デフォルトの名無しさん:2013/09/11(水) 19:11:47.85
未だに2003以前を使っている奴は間違いなく頭の固くなったジジイ
456デフォルトの名無しさん:2013/09/11(水) 20:15:03.66
Yahooプロ野球のネット中継を見てたんですが
巨人の阿部が2ランホームランを打って4-1になったと思いきや
そのあとまるでホームランがなかったように2-1に戻ってるんですが
なにかあったのですか?
457デフォルトの名無しさん:2013/09/11(水) 20:29:09.59
458デフォルトの名無しさん:2013/09/11(水) 21:39:11.69
459デフォルトの名無しさん:2013/09/12(木) 02:57:05.93
>>455
最新機能が本当に必要かどうか判断することを放棄してゲイツの奴隷になれというわけですね
460デフォルトの名無しさん:2013/09/12(木) 19:33:42.34
ホント頭かてえのな
461デフォルトの名無しさん:2013/09/12(木) 19:54:32.25
えてしてこのスレはObject指向に付いて行けない俺みたいなじじいと
PG初心者のたまり場だから仕方がない。
462デフォルトの名無しさん:2013/09/12(木) 21:20:02.17
マイクロソフトの話でゲイツがどうのこうのって言う奴がまだいるのに驚いたわ

ここは時間が止まってるんだなあ
463デフォルトの名無しさん:2013/09/12(木) 21:43:29.18
>>461
object指向理解できたらVBAのコーディングもはかどるだろうか?
まったくわからないけど...
464デフォルトの名無しさん:2013/09/12(木) 23:06:03.37
ネタ、釣り、皮肉にマジレスするのがここでのマナー
465デフォルトの名無しさん:2013/09/12(木) 23:29:10.56
クラスモジュールに何かコードを(自分で一から)書いたことがない。
本で紹介されていたソースをコピーして使ってはいるけどw
466デフォルトの名無しさん:2013/09/14(土) 16:36:19.68
基本コピペ改変でなんとかなっちゃうよね、PCのスペックも上がってるし、ネット全盛期だから気軽に出来ちゃうけど、昔のPGはほとんど本で調べて手書きだったのかな、そう考えると凄いな.....
467デフォルトの名無しさん:2013/09/14(土) 20:08:49.42
>>466
大昔はノートに鉛筆で書いてた
http://www.protom.org/mad/0070_111.jpg

8桁ごとに線が太くなってる、プログラム専用のノートなんてのが売られてた
468デフォルトの名無しさん:2013/09/14(土) 21:13:27.66
質問です。
Gの列に英数6桁の文字列があります。(例:123ABC)
それらの末尾に半角アスタリスクを付け加えたいのです。(例:123ABC*)

Range("G:G").Value = Range("G:G") &amp; "*"

と書いて実行してみましたが、
ワイルドカードの*と認識されてしまうらしく、作動しません。
エラーメッセージは「型が一致しません」と表示されます。
「ワイルドカード エスケープ」でぐぐってみましたがわかりませんでした。
どなたかアドバイス願います。
469デフォルトの名無しさん:2013/09/14(土) 21:15:50.89
Range("G:G").Value = Range("G:G") & "~*"

書いてみた式がコピペでうまく表示されていませんでしたので訂正します。
アスタリスクの前に半角で 〜や¥を試してみましたが上手くいきませんでした。
470デフォルトの名無しさん:2013/09/14(土) 21:36:47.48
>>467
いや、そのコードを手書きしている意味が分からない。
8桁区切りはまぁ、区切りがいいから理解出来るが、
幾ら昔でもアセンブラや逆アセンブラは有ったし、無ければ自分で作ってた。
まだ横に有るのがアセンブラコードをダンプ化したものやチェックサムならともかく、NEXTってなんだよ。
スレ違いとは分かっていても凄く気になる。
471デフォルトの名無しさん:2013/09/14(土) 21:47:36.33
Cells(1, 1) = Cells(1, 1) & "*"

でやれば正常に処理できた
ループは不可?
472デフォルトの名無しさん:2013/09/14(土) 21:51:31.84
>>471
Cells だとできるんですね。
Range だからできないのか、ループだからできないのか、わかりませんが実験してみます。
ちなみに下記の式でループもでき、解決しました。
ありがとうございます。

Range("G:G").NumberFormatLocal = "@""*"""
473デフォルトの名無しさん:2013/09/14(土) 21:57:33.51
行全体を("G:G")で選ぶんじゃなくて、セル単体を("G1")で選べば、RANGE でもできました。
ループもできました。
勉強になりました。
474デフォルトの名無しさん:2013/09/14(土) 22:06:01.45
>>470
本当の最初はアセンブラがなかったんだよ
その時代の資料がネットでは発見できなかったけど、自分で暗算して16進数に直した物を入力してた
だから、16進コードを書くための用紙が売られてた

その次に、アセンブラは作られたけど、まだテキストエディタのない時代があった
475デフォルトの名無しさん:2013/09/14(土) 22:14:02.85
>>472
Formatを使って、123ABC が 123ABC* と表示されていても、実体は?
MsgBox で確認するべし。
476466:2013/09/14(土) 22:14:44.05
>>467
おおっ、そんなノートがあったのですね!

アセンブラ見てるとVBAて読みやすいなって思えるw
477デフォルトの名無しさん:2013/09/14(土) 22:20:57.64
>>472 >>475

formatでもしダメなら、これでどうかな?


Dim str As String
Dim c As Long

For c = 1 To Cells(Rows.Count, 7).End(xlUp).Row

str = Cells(c, 7).Value
str = str +"*"
Cells(c, 7).Value = str

Next c

End Sub
478デフォルトの名無しさん:2013/09/14(土) 22:22:27.01
頭のsub が抜けてた

sub テスト

Dim str As String
Dim c As Long

For c = 1 To Cells(Rows.Count, 7).End(xlUp).Row

str = Cells(c, 7).Value
str = str +"*"
Cells(c, 7).Value = str

Next c

End Sub
479デフォルトの名無しさん:2013/09/14(土) 22:50:17.70
>>474
JR(NZ) とかでループするときにオペランドの値を数えるときに
FF
FE
FD
FC
FB
FA
F9
F8
...
って数えていくんだよな
480デフォルトの名無しさん:2013/09/14(土) 23:01:41.63
>>470
大昔は、PC はおろか端末さえも一人一台じゃなかったから、いくらアセンブラーとかあってもどうしようもなかった。
481デフォルトの名無しさん:2013/09/14(土) 23:14:32.00
>>480
確かに、アセンブラーなんてのは理想の高級言語だった。
1命令づつ、トグルスイッチで入力してたね。
482デフォルトの名無しさん:2013/09/14(土) 23:45:13.68
>>481
節子、それマシン語や
483デフォルトの名無しさん:2013/09/14(土) 23:47:51.51
いい感じで雑談スレになってるなー
>>1★5厨が来たらビックリして小便漏らすんじゃないか?
484デフォルトの名無しさん:2013/09/14(土) 23:50:32.32
じゃ、そっちでは何が低級言語だったんだ?
485デフォルトの名無しさん:2013/09/15(日) 00:04:43.32
Excelの話もまともにできないのがバレたので仕方なく昔話を始めた模様
486デフォルトの名無しさん:2013/09/15(日) 00:11:11.36
>>477
FORMAT だと見た目だけでしたね・・・・
文字列2つをくっつけるだけでこんなに色々やり方があるとは勉強になりました。

結局はシンプルな
Cells(1, 1) = Cells(1, 1) & "*"
をループする方法を採用しました。
ありがとうございます。
487デフォルトの名無しさん:2013/09/15(日) 00:17:45.95
>>483
荒らしてドヤ顔。
工作員がやりそうなことだな。
488デフォルトの名無しさん:2013/09/15(日) 00:25:03.92
みんなマターリしようよ(゚Д゚)
489デフォルトの名無しさん:2013/09/15(日) 05:42:09.86
3×1の2次元配列をtransposeしても行列が入れ替わらなくて困ってます。
例えばこんな感じ↓にしても、2つのListboxのいずれにも、3×1のデータが表示されてしまいます。

これって仕様でしょうか?
(わざわざ2次元にしてるのは、場合によっては、3×2や3×3になることがあるからです)

Private Sub UserForm_Initialize()

  Dim myData() As Variant
  
  ReDim myData(2, 0)
  myData(0, 0) = "a"
  myData(1, 0) = "b"
  myData(2, 0) = "c"

  With UserForm1.ListBox1
    .List = myData
    .ColumnCount = 3
  End With

  With UserForm1.ListBox2
    .List = WorksheetFunction.Transpose(myData)
    .ColumnCount = 3
  End With

End Sub
490デフォルトの名無しさん:2013/09/15(日) 09:27:37.00
>>487
股間拭けよw
491デフォルトの名無しさん:2013/09/15(日) 09:36:03.80
>>489
myDataにデータを格納するんじゃなくてワークシートにデータを格納してもダメなの?
492デフォルトの名無しさん:2013/09/15(日) 09:46:13.44
質問に質問で返すスレだった
493デフォルトの名無しさん:2013/09/15(日) 12:34:46.65
>>489
ReDim myData(2, 0) −> ReDim myData(2, 1)で出来る。
添え字0の配列が無駄になると考えるなら、Option Base で変更。
その時は ReDim myData(3, 1)で、添え字の範囲も、(1〜3と1)に。
494デフォルトの名無しさん:2013/09/15(日) 19:06:27.96
>>489,493
なんだろうね、これ
要素数1の配列は、配列じゃないって判定うけるのかね
しかもOption Base 0 指定しても、無視して添字1からの配列つくりやがるっぽい

行数と列数同じ配列にして、自前で入れ替える処理書くのが無難なんじゃね
495デフォルトの名無しさん:2013/09/15(日) 19:32:40.00
皆さんありがとうございます。

>>491
ある意味一番確実かも・・・最後はそれでやってみます
>>493
要素数増やすとうまくいきますね
ただ、リストボックスに空のリストができてしまうのが難点です
>>494
そうそう、変ですよねVBAの配列って
496デフォルトの名無しさん:2013/09/15(日) 21:36:34.39
配列は本来固定サイズで最大値をあらかじめアロケートするための方法
要素数1個の配列作る奴の方が変だが
リストボックスに表示するために行列変換するのもなんだかな、って感じだが
ちなみに変なのはワークシート関数の仕様であって、つまりEXCELが変。VBAが変なわけではない
497デフォルトの名無しさん:2013/09/16(月) 07:39:23.27
論点ずらした文句ばっかり
498デフォルトの名無しさん:2013/09/16(月) 07:55:16.30
>>496
作り手の問題という視点がすっぽり抜けてる。
大抵の場合ほとんどが作り手の問題なんだけどな。
自分は悪くないってどこぞの人間と同じ。
499デフォルトの名無しさん:2013/09/16(月) 08:26:03.62
VBAの配列がクソなのは事実
redim preserve(笑)とか
2次元以上の配列だと1つの次元しか拡張できないし色々酷い
500デフォルトの名無しさん:2013/09/16(月) 11:30:55.59
そうだね
501デフォルトの名無しさん:2013/09/16(月) 22:16:50.60
色々と作りなおしているうちに使わなくなったプロシジャやら関数やら出てきたりすると思うんですが、
そういうのを検出する工夫とかって無いでしょうかね。
仕様をきちんと整備していたらそういう事もないんでしょうが、あれこれ作っているとどうしても出てきてしまいます^^;
502デフォルトの名無しさん:2013/09/16(月) 22:35:52.47
使わなくする時にコメントアウトするかな。
検出は名前を変えてコンパイルしてみるとか?
503デフォルトの名無しさん:2013/09/16(月) 22:42:17.66
>>501
検出するプログラムをVBAで作る
504501:2013/09/16(月) 23:07:33.57
>>503
w VBAProjectというものを操作する…ということなんですかね。難しそうだけどもしそういうのが出来たら
後々重宝しそうではありますね。今の俺のレベルではまだ無理みたいですが^^;

>>502
地道にそうやるのが良いかな…

他にはみなさん、どうしておられます?
505デフォルトの名無しさん:2013/09/16(月) 23:11:45.46
>>501
使ったことないけど、Doxygen にかけてみるとか。
http://needtec.exblog.jp/20448110/
506デフォルトの名無しさん:2013/09/16(月) 23:26:55.94
そのうち使うかもしれないし
放置しととけばいいんじゃないの
特に支障ないでしょ
507501:2013/09/16(月) 23:27:04.96
>>505

へぇそういうのもあるんだ。
試しに後で使ってみます。教えていただきありがとうございます。
508デフォルトの名無しさん:2013/09/18(水) 13:02:56.59
v=WorksheetFunction.Sum(cells(Ny,x):cells(y-2,x))

こんな感じで使いたいのですが構文エラーになります
セルで指定する方法がありましたら教えてください
509デフォルトの名無しさん:2013/09/18(水) 13:11:23.89
>>508
v = WorksheetFunction.Sum(Range(Cells(Ny, x), Cells(y - 2, x)))
510デフォルトの名無しさん:2013/09/18(水) 13:18:23.31
できました。ありがとう。
511デフォルトの名無しさん:2013/09/18(水) 23:53:38.37
>>501
部品は最初から用途別にモジュール、またはクラスに纏めて作っておく。
要らない関数を消すんじゃ無くて、使う関数が入ってるモジュールやクラスを組み込むんだ。
512デフォルトの名無しさん:2013/09/21(土) 19:29:14.29
IF セルA.value mod セルB.value = 2 then

と書いて
セルA=7
セルB=2.5
にして実行すると
modの結果が1になってしまい、IFの中に入れません
イミディエイトウィンドウで直接以下の式を実行しても結果は1になりました。
? 7 mod 2.5
1

なぜでしょうか?
対処方法を教えてください
513デフォルトの名無しさん:2013/09/21(土) 20:03:16.33
>>512
IF (セルA.value)*10 mod (セルB.value)*10 = 20 then
でどうかな?
514デフォルトの名無しさん:2013/09/21(土) 20:19:39.68
>>513
ありがとうございます
やはりそれしかないですか・・・

なんでこうなってしまうのでしょうか?
エクセルのセル上でmod関数使うとちゃんと2になってくれるのに
515デフォルトの名無しさん:2013/09/21(土) 20:29:11.96
>>514
VBAのヘルプで見ると
「いずれかの数値が浮動小数点数の場合は、整数に丸められます。
MyResult = 12 Mod 4.3 ' 0 を返します。
MyResult = 12.6 Mod 5 ' 3 を返します。」
とあるので、VBAでは
12 Mod 4.3 は INT(12) Mod INT(4.3)
12.6 Mod 5 は INT(12.6) Mod INT(5) と同じになると思われます。
516デフォルトの名無しさん:2013/09/21(土) 20:33:32.10
515です
INT は間違いでした、ROUND(12.6,0) が正しい。
517デフォルトの名無しさん:2013/09/21(土) 20:35:19.87
そうなんですか・・・
クソですね

ありがとうございました
518デフォルトの名無しさん:2013/09/21(土) 23:56:20.42
そうですね。あなたクソですね。
519デフォルトの名無しさん:2013/09/22(日) 01:55:10.86
このスレは糞まみれですね。分かります。
520デフォルトの名無しさん:2013/09/22(日) 08:21:05.25
いいえ、あなたは分かっていません。
このスレはクソそのものです。
521デフォルトの名無しさん:2013/09/22(日) 09:20:18.92
つまりVBAはクソ言語
522ピラフ:2013/09/22(日) 09:30:02.83
>>521
VBAがクソ言語じゃないことをピラフが証明してみせるよ!はい証明終了!!

Function Pilafu_Mid(a, b)
  Pilafu_Mid = a - Fix(a / b) * b
End Function

もしマイクロソフトの中の人とお知り合いの人がいたら世界最大のインターネットコミュニティで
ピラフがVBAの普及に尽力されてたってお伝えいただけない?ピラフにMS Officeを無料で進呈すべき
だって進言してくださらないでしょうか。よろしくお願いします。ありがとうございます。
523デフォルトの名無しさん:2013/09/22(日) 09:32:57.55
今日は上機嫌だな。
生理が終わったのか。
524デフォルトの名無しさん:2013/09/22(日) 10:17:05.98
ストーップ!!!
525デフォルトの名無しさん:2013/09/22(日) 13:21:33.40
>>522
なんでModじゃなくてMidなの?
あと青い肌のあいつは "Pilaf"
526ピラフ:2013/09/22(日) 13:34:25.91
>>525
Modは正しくはRemainderなんだからRemなんだけど、
Remはコメントのためにリザーブされてるでしょ、だから
ほんとはRemなのにModになってるわけで、ピラフがModをMidと書いたのはそれと
少しも関係ないんだけど、書き間違えたの。ピラフ書き間違えたの。とにかくピラフが
言いたいのはピラフが書き間違えたってことなの。でも熱意は伝わってるっしょ。じゃあそれでいいです。
527デフォルトの名無しさん:2013/09/22(日) 15:06:48.72
ちゃんと間違いを認められるピラフさん素敵
528デフォルトの名無しさん:2013/09/22(日) 16:46:54.97
雲行きが怪しくなってきた
529デフォルトの名無しさん:2013/09/22(日) 17:31:51.31
>>522
それワークシート関数のMODと互換じゃないから
MOD(7,-2.5)と比べてみろ
ちゃんとワークシート関数の説明に MOD(n, d) = n - d*INT(n/d) だって書いてあるのに、なんでわざわざ改悪するかな
530ピラフ:2013/09/22(日) 17:40:09.33
>>529
ワークシート関数と互換だと言った覚えはないよ。
Modと互換だと仮定すればピラフが言ってることは間違いになる。
そうすればピラフのコードの瑕疵を指摘した自分は賢く思われる。
俺カッコいい。そういうことでしょ。だっせえやつ。お前大学出てないだろ。
531ピラフ:2013/09/22(日) 17:43:05.73
>>529
最近こういう詭弁使って無理矢理自分を賢く見せようとする雑魚が増えたよな。
低学歴自慢にしかなってないことにいつごろお気づきになるのだろうか。
最低でもMarchぐらい卒業してないと話にならんな。ピラフはアメリカのケンブリッジを卒業したけどね。
首席に近かったんじゃないかな。別にピラフそういうの気にしてなかったから見なかったけどね。
ほとんど首席だった。
532デフォルトの名無しさん:2013/09/22(日) 17:58:32.61
まぁアメリカのケンブリッジでも中国のケンブリッジでもどこでもいいよ w
533デフォルトの名無しさん:2013/09/22(日) 19:06:45.23
>>529
VBAの話じゃ無いけど、流れで。
MSは「n - d*INT(n/d)」を理想として設計してるが、
エクセル関数のMODは上記式とは完全一致しない。
エクセルの表計算は2進数での計算の為、2進化10進数ではない。
そのため、
=MOD(12,0.1)の様な小数点の数字が有る時は、変換誤差が出る為注意が必要。
VBAについては、既出の通りだが、
ワークシート関数でも小数点は要注意と思う。
534デフォルトの名無しさん:2013/09/22(日) 20:08:32.98
>>527
最近こういう自演使って無理矢理自分を賢く見せようとする雑魚が増えたよな。
535デフォルトの名無しさん:2013/09/22(日) 20:42:26.37
>>529
もともと小数が絡まなくても MOD(70,-25) は -5、70 mod -25 は 20 という違いがある
Pilafu_Midは後者と同様ってだけで、改悪とかそういう話じゃない
536デフォルトの名無しさん:2013/09/23(月) 00:32:02.18
ピラフって桃白白なの?
537デフォルトの名無しさん:2013/09/23(月) 02:55:58.04
えっ・・・何を今さら
538デフォルトの名無しさん:2013/09/23(月) 03:14:02.02
あっ.....
539デフォルトの名無しさん:2013/09/23(月) 21:51:20.72
>>353
VBAのmodの仕様がワークシート関数と違うから使えねぇって話なのに
VBAのmod互換の物をつくって、一体何がしたいの?
540デフォルトの名無しさん:2013/09/23(月) 22:05:36.11
>>539
お前、何から何まで間違ってるな
逆に感心するわ
541デフォルトの名無しさん:2013/09/24(火) 07:12:38.44
CEILING
FLOOR
ROUNDDOWN
ROUNDUP

お好きに組み合わせれば
542デフォルトの名無しさん:2013/09/25(水) 10:57:41.90
プログラムの経験は少しありますがVBAは初めてです。

作りたいのは作業日報のようなものです。
入力フォームに入力された内容を別のBookに保存します。
Rangeとかは理解できてきましたが、大きな問題を抱えています。

フォームの登録ボタンを押下時には
シートを新しく作成してそこに書き込むようにしたいのです。
そうして次々とシートを追加していくようにしたいのですが
そのような事は可能なのでしょうか?

OS Win7 Excelは2010です。
543デフォルトの名無しさん:2013/09/25(水) 11:04:30.02
可能です
544デフォルトの名無しさん:2013/09/25(水) 11:08:30.26
ありがとうございます。
検索しても出てこなかったもので困っていました。
出来るのであればもう少し調べてみます。
545542:2013/09/25(水) 12:17:23.60
お陰様でなんとかなりそうです
入力値から取得した名前でシートを次々追加できるのを確認しました!

まぁ 間違えて終了してしまって全部消えましたけど。
546デフォルトの名無しさん:2013/09/25(水) 12:37:06.58
よくわからない部分を調べながら作る時、いっぺんリセットして最初から作り直した方が
試行錯誤の跡が消えてコードがスッキリするよな
547デフォルトの名無しさん:2013/09/25(水) 22:02:40.94
なるほど。
このスレのテンプレの様だな。
548デフォルトの名無しさん:2013/09/25(水) 23:33:03.03
コピーペーストに関する質問です。回答お願いします。

1000行のデータを書式などのフォーマットもコピーする際に
1000行まとめてコピーペーストする場合と1行ずつ1000回コピーペーストする場合とではファイルのサイズが後者の方が重いです。

この場合に1行ずつ1000回のコピーペーストした際のファイルサイズを軽くしたいのですが、どのようにしたらよろしいでしょうか

値のみではなく書式もコピーしたいです。よろしくお願いいたします。

環境はOS Win7 Excel2010です。
549デフォルトの名無しさん:2013/09/26(木) 00:24:10.86
値だけ一行づつコピーして、あとから一括で書式設定するコードにしたら?(適当)
550548:2013/09/26(木) 00:35:27.43
抽象的な質問ですみませんでした

1行ずつ読み込んでコピーする理由はデータを1行ずつ判定を行い
そしてその判定を元に複数のシートに仕分けを行いたいので、値と書式はセットで1行としてコピーペーストを行いたいです。
551デフォルトの名無しさん:2013/09/26(木) 02:00:05.08
この方法で軽くなるかはわからんけど、
作業用シートに1行ずつコピーしたあと、最後にまとめてコピーし直せばどうだろう
552デフォルトの名無しさん:2013/09/26(木) 03:08:46.38
条件付き書式を設定してあるセルをコピってない?
553デフォルトの名無しさん:2013/09/26(木) 03:32:57.08
こちらでちょっと検証してみたけどデータ量そんなに変わらなかったよ。

同じように1000件のレコードで、ある程度フィールドもあるデータを、そのまま範囲選択でコピーするパターンと、カウンタまわして一行ずつコピーするパターンで試したけど。

4kbくらいしか違わなかった、まぁ確かに増えてるけど..
554デフォルトの名無しさん:2013/09/26(木) 07:55:32.40
>>551
試したけど結果的には重いサイズのままでした

>>552
書式はプルダウンリストと色のついたセルと罫線が引いてあるくらいです

>>553
上記のプルダウンリストや色が入っているためか、こちらはもっと重いです。
コピーを行う前の状態でも400kbが既にあります。
555デフォルトの名無しさん:2013/09/26(木) 11:04:09.16
ファイルサイズは、普通、大きい小さいと言うんだが
556デフォルトの名無しさん:2013/09/26(木) 11:43:21.46
たぶん、コピー前のシートでは列単位で書式を設定してたんだろう
だとしたら、同じように書式を再設定すればかなり軽くなると思う
557デフォルトの名無しさん:2013/09/26(木) 15:51:29.68
>>548

set a = セル範囲
で、for eachじゃダメなん?
558デフォルトの名無しさん:2013/09/26(木) 17:53:57.44
範囲名だか何だかがペーストしたセルの数だけ作成される現象があったはず
サイズ大きくなるのは多分それ
解決方法はしらん。範囲名さがして消せばいいんじゃね
559デフォルトの名無しさん:2013/09/26(木) 19:19:25.12
>>558
ありがとうございます。たぶんそれっぽいです。
探してみます。
560デフォルトの名無しさん:2013/09/26(木) 22:19:02.01
>>548
目的に対する手段が間違ってない?
コピー&ペーストする必要性があるの?
561デフォルトの名無しさん:2013/09/26(木) 22:30:01.36
>>560
実際の組んでたプログラムは複数のブックから読んで1つのブックに集約する目的があったが
1行ずつコピーってたら、まとめてコピーしたときよりも何倍もデータ量が増えることに気づいたからいろいろ試してた
別のブックを参照するからデータ量が増えたのかとも思ったけど同じ1つのシートでも同様の現象が起きたから質問した

別ブックを参照する条件をつけるよりも、同じブック内でも同様の現象が起きるなら
条件がシンプルなら方がいいと思って質問した
562デフォルトの名無しさん:2013/09/27(金) 03:50:09.24
この後出しはちょっと
563デフォルトの名無しさん:2013/09/27(金) 04:05:17.88
別に影響ないだろ
564デフォルトの名無しさん:2013/09/27(金) 04:39:15.04
何にせよ解決のヒントが見つかるといいね、質問スレだしね。
565デフォルトの名無しさん:2013/09/27(金) 10:54:43.11
後出しするとそれまで回答してた人の機嫌を大きく損ねるので新しい回答者待ちとなる
566デフォルトの名無しさん:2013/09/27(金) 11:40:22.80
後出しで、今までの応答がすべて無駄になる場合とならない場合がある
今回は後者だから、これで機嫌を損ねるのは素人
567デフォルトの名無しさん:2013/09/27(金) 11:45:52.25
なにをやっても機嫌を損ねる更年期障害の人がいつも張り付いているから、いちいち気にしない
568デフォルトの名無しさん:2013/09/27(金) 22:12:40.65
平常運転
569デフォルトの名無しさん:2013/09/28(土) 02:02:33.94
わかってるなら答えてやれよw
570デフォルトの名無しさん:2013/09/28(土) 02:06:15.95
わかってたら答えてる
571デフォルトの名無しさん:2013/09/28(土) 06:41:28.04
わからないから後出しだと言いがかりつけて質問から逃亡するいつもの一発芸だろ
572デフォルトの名無しさん:2013/09/28(土) 07:14:18.05
>>561は後出しの内容でなく態度が問題かと。

あと、>>569たちは>>559を見てないのか?
今の時点ではいったん終了してると思うけど。
573デフォルトの名無しさん:2013/09/28(土) 07:25:48.39
>>572
事実を端的に述べてるだろ。態度はまったく問題ないと思うが。
574デフォルトの名無しさん:2013/09/28(土) 08:18:32.26
ピラフか?
575デフォルトの名無しさん:2013/09/28(土) 08:44:46.36
>>572が何に対してムカついているのか意味不明。
質問者は、的外れなレスに対して事実を伝える時も
常に平身低頭で丁寧語と敬語を駆使しなければ
問題になるということなのかね。すごいね。まさかね。
576デフォルトの名無しさん:2013/09/28(土) 09:17:30.06
このスレは回答が終わった後が本番
577デフォルトの名無しさん:2013/09/28(土) 10:34:20.62
もう始まってた
578デフォルトの名無しさん:2013/09/28(土) 11:26:57.50
 (´Д`;)ヾ オネガイシマス
   ∨)   オネガイシマス
   (( 

 (;´Д`)  
 (  八)  カイトウシテクダサイ
   〉 〉

    ヾ
 (´Д`;)、  コノトオリデス
   ノノZ乙
579デフォルトの名無しさん:2013/09/28(土) 13:22:38.45
解決のヒントが見つかれば、流れはどうあれ質問者的には問題ないはず!
良心的な回答者に感謝しとけばおk
580デフォルトの名無しさん:2013/09/28(土) 13:35:02.13
碌な回答してないくせに感謝しろとか言い出したぞw
モンスター回答者が跋扈する酷いスレだなw
581デフォルトの名無しさん:2013/09/28(土) 13:43:37.32
じゃあ感謝しなくておk
以降モンスター質問者が跋扈します
582デフォルトの名無しさん:2013/09/28(土) 15:48:30.80
VBAでファイル名を変更したいです。フォルダ・ファイル構成は下のような感じです。

[Folder01]
img001.jpg
img002.jpg
img003.jpg
img004.jpg
img005.jpg



[Folder02]
img001.jpg
img002.jpg
img003.jpg
img004.jpg
img005.jpg



[Folder03]
img001.jpg
img002.jpg
img003.jpg
img004.jpg
img005.jpg



[Folder04]

583582:2013/09/28(土) 15:50:41.57
何がしたいかと言うと、各フォルダのファイル名のimgXXXが、001から始まっているのですが
これを前フォルダの最後のjpgファイルの番号の次の番号から、次のフォルダのjpgファイルの番号を始めたいのです。

フォルダとファイルはたくさんあります。(フォルダは50くらい、各フォルダにファイルは30くらい)

どういうコードを書けばいいですか?
584デフォルトの名無しさん:2013/09/28(土) 16:10:16.23
vba フォルダ名 変更
でぐぐれば
http://www.happy2-island.com/vbs/cafe02/capter01204.shtml
http://www.k1simplify.com/vba/tipsleaf/name.html

などいっぱい出てくるじゃん。
フォルダ名の取得とかもそこにあるからコードを書けとか勘弁してなw
585デフォルトの名無しさん:2013/09/28(土) 16:39:44.65
>>584
コード書け。リンク先に許可とってねえだろ勝手にリンク張るな。泥棒だぞ。
586デフォルトの名無しさん:2013/09/28(土) 16:44:04.18
>>585
     .∩_∩ ミ ギャーッハッハッハッ!
 o/⌒(. ;´∀`)つ 
  と_)__つノ  ☆ バンバン
587デフォルトの名無しさん:2013/09/28(土) 16:55:15.21
質問者に質問する自由が有る様に、回答者もどんな回答をするかの自由は有る。
リンクを貼りたい奴は貼ればいいし、コードを書きたい奴は書けばいい。
588デフォルトの名無しさん:2013/09/28(土) 17:04:10.96
>>587
リンク張られる身にもなれ!コード盗まれて知らないやつに我が物顔で書き込まれる身にもなれ!!
589デフォルトの名無しさん:2013/09/28(土) 17:10:42.70
なんかここのスレの人には極端な人がいるな。
リンク貼るなって言ったり、コード書くなって言ったり。
590デフォルトの名無しさん:2013/09/28(土) 17:41:18.86
>>588
じゃ、元々ウェブなんかに書かなけりゃ良いじゃん。
591デフォルトの名無しさん:2013/09/28(土) 17:42:30.60
>>588
その盗まれたというコードを見せてくれよ
興味あるわ
592デフォルトの名無しさん:2013/09/28(土) 17:47:32.30
>>590
リンクを張るときは許可がいるが、ホームページに書くのは自由だろ。
許可を取らずにリンク張るのって2chだけだろ。非常識な世界に閉じこもってたら
常識の世界がわからなくなる。
593デフォルトの名無しさん:2013/09/28(土) 17:58:40.45
>>585 >>588
584で紹介されてるサイトは、両方ともリンクフリーと明示されてるが。
594デフォルトの名無しさん:2013/09/28(土) 18:02:21.01
>>582
Excelに関係ないからこっち

VBAなんでも質問スレ
http://toro.2ch.net/test/read.cgi/tech/1342087380/
595デフォルトの名無しさん:2013/09/28(土) 18:10:14.22
今までの討論がまったく無駄になるほどのベストアンサーが出たのぅ
596デフォルトの名無しさん:2013/09/28(土) 18:11:05.81
>>593
じゃあもういいよ!!
597デフォルトの名無しさん:2013/09/28(土) 18:11:53.65
>>596
ちなみにリンクに許可は不要だから、
管理者としてはリンクフリーか書かないかどっちかしかないよ
598デフォルトの名無しさん:2013/09/28(土) 18:16:50.98
>>587
語弊がある。
質問するにはスレのルールに則った上での質問の自由があり、
回答するのもスレのルールに則った上での回答の自由があるってことだろ。
599デフォルトの名無しさん:2013/09/28(土) 18:29:39.72
>>589
スルーしときなよ。
600デフォルトの名無しさん:2013/09/28(土) 19:19:31.70
>>598
このスレのルールって何だ?
またテンプレ?
601デフォルトの名無しさん:2013/09/28(土) 20:44:00.68
ルール大柴
602デフォルトの名無しさん:2013/09/28(土) 21:33:24.69
ピラフ荒らすなよ
603デフォルトの名無しさん:2013/09/29(日) 23:24:35.31
VBA初心者ですが
シートごとにカーソルを左上に戻す命令を書いていますが
Sub Macro1()
Windows("00score.xls").Activate
Worksheets("Sheet1").Select
Application.Goto Reference:=Range("A1"), Scroll:=True
Worksheets("Sheet2").Select
Application.Goto Reference:=Range("A1"), Scroll:=True
・・・
Worksheets("Sheet10").Select
Application.Goto Reference:=Range("A1"), Scroll:=True
End Sub
このような書き方で10シート実現できましたが
20シートに増やす場合
もっとシンプルに記述するにはどうすればいいのでしょうか?
604デフォルトの名無しさん:2013/09/30(月) 00:08:14.15
>>603
Sub Macro1()
  Windows("00score.xls").Activate
  For Each ws In Worksheets  ' ←これが「全シートに対して同じことを繰り返す」って意味
    ws.Activate
    Application.Goto Reference:=Range("A1"), Scroll:=True
  Next ws
End Sub
605デフォルトの名無しさん:2013/09/30(月) 00:52:13.45
>>604
コード書く前に質問者本人に仕様を確認したほうがいいと思う。
606603:2013/09/30(月) 02:55:39.35
>>604
これはシンプルで合理的ですね、ありがとうございました。
607デフォルトの名無しさん:2013/09/30(月) 10:53:48.45
>>605
「俺はこう理解した。コードで言うならこうだ」ってことなんだから、問題ないよ。
608デフォルトの名無しさん:2013/09/30(月) 10:56:01.79
コード書くときは文字コードに注意知る
609デフォルトの名無しさん:2013/09/30(月) 11:38:41.99
シートをコピーして(2)がついて
Worksheets("sheet (2)").Select
これだと問題ないのですが
Cells(1, 1).FormulaR1C1 = "=SUM(sheet (2)!RC3:sheet (2)!RC4)"
こうするとアプリケーション定義またはオブジェクト定義のエラーとなります
解決策はありますでしょうか
610デフォルトの名無しさん:2013/09/30(月) 12:23:07.80
自己解決しますた
SUM('sheet (2)'!RC3:RC4)"

アルファベット以外の記号を含む場合はクォーテーションで囲んでくださいとかなんとか・・・
お騒がせしました
611デフォルトの名無しさん:2013/09/30(月) 12:27:55.15
教えて頂きたいことがあります。
VBA自体が初めてですのでお恥ずかしい質問になりますが
ご容赦下さい。

Excelのシートに
入力フォームに入力されたデータを格納していきます。
具体的にはB5からE5に項目名が入っており
そこから下に列を増やしていきます。
*項目が増えることはありません。

格納後に、シートを並び替えしたいのですがそこが出来ません。
具体的なコードは以下です。

Set rngSetRng = .Sheets("一括表示").Range(Cells(3, 5), Cells(5, lngRowNum))
rngSetRng.Sort _
Key1:=.Sheets("一括表示").Range("C5"), _
Order1:=xlAscending, _
Header:=xlYes

エラー内容は
実行時エラー '1004'
並べ替えの参照が正しくありません。 並べ替えるデータ内にあることと「最優先される
キー」ボックスが空白でないことを確認してください。
lngRowNum は正しく最終列の数を取得できております。

ちなみにキーに指定してる行には日付のデータが入っております。

この問題に1日費やしても解決できませんでしたので、どうかお助け下さい。
612611:2013/09/30(月) 12:34:28.09
ごめんなさい 行と列という言葉の使い方が逆になってしまいました。

No 日付 項目1 項目2

と横に並んでいて
縦方向にデータを追加していく ということです。
613デフォルトの名無しさん:2013/09/30(月) 13:14:38.29
(lngRowNumの設定が無いので、仮に10行まで)

With Worksheets("一括表示")
Set rngSetRng = .Range(Cells(5, 2), Cells(10, 5))
rngSetRng.Sort _
Key1:=.Range("C5"), _
Order1:=xlAscending, _
Header:=xlYes
End With
これでどうかな。
614デフォルトの名無しさん:2013/09/30(月) 13:31:53.73
>>611
Cellsの引数はX,YじゃなくてRow,Col
Cells(5, lngRowNum)じゃなくてCells(lngRowNum,5)だと思うが
615デフォルトの名無しさん:2013/09/30(月) 14:02:03.85
Cellsの前に . とか .Sheets("一括表示"). とかを付けてやる必要があるんじゃ?
616デフォルトの名無しさん:2013/09/30(月) 14:44:30.73
シート参照しなくてもCellsそのものは動く事は動く
ただ、どのシート参照してるかは分かりにくい
そのコードの書かれたシートかActiveSheetなはずだが
617デフォルトの名無しさん:2013/09/30(月) 17:14:50.54
>>611-612
俺は>>614の言ってるとおり

> Cells(5, lngRowNum)じゃなくてCells(lngRowNum,5)だと思うが

か、キーの指定位置

Key1:=.Sheets("一括表示").Range("C5"), _

が間違っているかのどちらかかなと。
>>612のデータのNo列がA列から始まっていると仮定すると、
キーの指定位置は"C5"じゃなくて"B3"になると思う。
618611:2013/09/30(月) 17:48:39.99
皆様短時間に多数のレスありがとうございます。
皆様が言われた通りCellsの引数が逆でした。
こんな単純なことだったとは。本当助かりました。

>>615,616
このコードの前に指定のシートをactiveにしています。
はじめは.Sheets("一括表示").… をすべて付けてたのですが
なぜかうまくいかなくて。

ちなみに、実際は入力された内容を別シートに随時追加していく仕様なんです
索引のような機能を追加したくて作業を進めてるところです。

>>617
タイトル行のようなものが含まれてましたので
表の始まりがA1じゃないのです。
分かりづらい記述ですみません。
619デフォルトの名無しさん:2013/10/01(火) 08:31:48.38
あるフォルダ以下の階層で、あるファイル名のファイルを探して開くためのコードを教えてください。
階層は深いので4-5層くらいあります。
そのファイル名は重複はしておらず、あるとすれば1個のみですが、存在しない可能性もあります。


こんな感じではじめて
Dim FolderName as Sting = "C\Data\Report\" 'これ以下の階層を探す
Dim FileName as String = "20131010Data.xls" 'このファイルを探す
620デフォルトの名無しさん:2013/10/01(火) 09:06:44.21
で、どこが分からないの?
621619:2013/10/01(火) 09:12:13.00
さっぱりわかりません。
622デフォルトの名無しさん:2013/10/01(火) 09:16:42.16
>>619
このあたりがヒントになるんじゃないのかな?
http://officetanaka.net/excel/vba/tips/tips95.htm
623デフォルトの名無しさん:2013/10/01(火) 09:25:13.96
OfficeTANAKAで有名な田中さんですが
http://officetanaka.net/img/banner.png
このオッサンみたいなのが本人でしょうか?
624デフォルトの名無しさん:2013/10/01(火) 09:28:09.95
>>622
再帰処理だからDirはダメでは?
625デフォルトの名無しさん:2013/10/01(火) 10:49:10.00
>>619
あんまりきちんと検証してないけど、こんな感じ?

Sub Sample1()
  FolderName = "C:\Data\Report\" 'これ以下の階層を探す
  FileName = "20131010Data.xls" 'このファイルを探す

  ChDir FolderName
  Set WSH = CreateObject("WScript.Shell")
  sCmd = """dir /s /b """"" & FileName & """"" 2> nul"""
  Set wExec = WSH.Exec("%ComSpec% /c " & sCmd)
  Do While wExec.Status = 0: DoEvents: Loop
  Result = wExec.StdOut.ReadAll

  Debug.Print Result ' 結果
End Sub
626619:2013/10/01(火) 11:08:25.15
>>625
すばらしい!
ありがとう。
できましたよ

ところで黒い画面が一瞬出てきたけど
これはほっといて問題ないですか?
627デフォルトの名無しさん:2013/10/01(火) 11:12:52.74
勉強になるなぁ
628デフォルトの名無しさん:2013/10/01(火) 11:23:35.84
このあたりはなにをしているのですか?

  sCmd = """dir /s /b """"" & FileName & """"" 2> nul"""
  Set wExec = WSH.Exec("%ComSpec% /c " & sCmd)

このへんのステートメントについて解説サイトみたいなのはありませんか?
629デフォルトの名無しさん:2013/10/01(火) 11:40:28.62
>>619
エクセルVBAだけでやるなら下記を参考に
http://itpro.nikkeibp.co.jp/article/COLUMN/20060206/228661/
日経BP社(リンク条件:当社サイトへのリンクであることを必ず明記)
630デフォルトの名無しさん:2013/10/01(火) 12:00:06.05
>>628
上の行はファイル名を取得するための準備。ダブルクォートは念のため入れただけで、なくても動く可能性はあるけど
まあ入れといた方が安全。正直に言うとダブルクォートの位置と数はこれでいいのかちょっと自信が無い

下の行は実際に処理を開始してるところ、ここが本体と言ってもいい。ここで黒いウィンドウが開いてしまう
黒窓を回避する方法もあるけど、どっちにしろタスクバーには変なアイコンが一瞬出ちゃうから書かなかった
ウィンドウハンドルとか使わずにタスクバーのアイコンを消す方法があるなら俺が知りたいぐらい

>>625に戻って、その次の行のStatus〜DoEventsで処理の完了を待って(完了すると黒窓が閉じる)、
最後にReadAllで結果を得る
631デフォルトの名無しさん:2013/10/01(火) 12:06:48.70
>>628
厳密に言うと、その2行の中でVBAのステートメントはLetとSetとCallだけだから、(LetとCallは省略されてるけど)
解説サイトを見ても本当に知りたいことは書いてなさそうな気がする
632デフォルトの名無しさん:2013/10/01(火) 12:32:23.27
>>628
WSHで検索すると、何なのか理解できるかも。
WSHはWindows Script Host(ウインドウズ・スクリプト・ホスト)の略。
633デフォルトの名無しさん:2013/10/01(火) 16:26:22.93
>>629
> 日経BP社(リンク条件:当社サイトへのリンクであることを必ず明記)

URLで日経BPであることがわかるので、いちいちそんなこと書かなくてよろしい
634デフォルトの名無しさん:2013/10/01(火) 18:10:21.58
エクセル2003のユーザーフォームのコンボボックスでマウスホイールを使用したいのですがどうプログラムすればいいでしょうか?
635デフォルトの名無しさん:2013/10/01(火) 23:23:29.50
>>633
見てないけど、日経BP が要求してるんだろ。
アホな要求だろうが参照するなら従うべき。
636デフォルトの名無しさん:2013/10/02(水) 07:25:29.10
>>635
二度と2chに書き込みしないでください
と俺がアホな要求をしているので従ってくださいね
637デフォルトの名無しさん:2013/10/02(水) 07:33:59.45
>>636
にちゃんの書き込みは、にちゃんのものなので、お前のアホな要求はなんの意味もないぞ (w
638デフォルトの名無しさん:2013/10/02(水) 10:40:33.35
変な質問になりますが聞いてもらえますか?

ExcelでVBAを用いた処理を行っているのですが
そのなかで、対象のセルに 「...」 という文字を入れてます。

これをVBAで実行するとセルには見た目通り
「...」 下の方に小さな点3つが表示されます。

ですが、この部分をExcel上で手作業で別セルにコピーすると
「・・・」 のように 真ん中に大きく表示されてしまいます。

なにが起こっているのでしょうか?

結果的にしたいことは ... をExcel上で同じ見た目でコピーしたいです。
639デフォルトの名無しさん:2013/10/02(水) 10:57:04.02
>>638
オプションでオートコレクトを切る

オートコレクトの一覧にはデフォルトで「 ... → …」というのが登録されているから、
その項目だけを削除してもいいけど、ほかにも勝手に変換される記号とかたくさんあるから
一律でOFFにした方が確実
640デフォルトの名無しさん:2013/10/02(水) 11:10:19.21
>>639さん
ありがとうございます。
解決しました。 そういうことだったのですね。
VBAというかExcelの問題だったのに解答ありがとうございました。
641デフォルトの名無しさん:2013/10/02(水) 17:58:29.58
どういたしまして
642デフォルトの名無しさん:2013/10/02(水) 19:21:47.02
シート1 ボタンがある。
シート2 range(cells(row1,col1),cells(row2,col2))

ボタンに登録してあるマクロを実行するとシート2の1行単位で、ある処理をする。
シート2がアクティブな時はマクロが動くのに、シート1にあるボタンを押下してマクロが起動すると、range部分でエラーが出ます。将来的にはシート2は非表示にしたいのです。
別シートにある1行x列の書き換え処理をFor〜Nextで回すときに、Rangeを使わずに範囲指定するコードが書けるのでしょうか。
(QAサイトはセキュリティーで閲覧不可でした。)お願いします。
643デフォルトの名無しさん:2013/10/02(水) 21:01:35.59
シート指定を省略しない
シート2.range(シート2.cells(row1,col1),シート2.cells(row2,col2))
644デフォルトの名無しさん:2013/10/02(水) 21:41:44.44
省略するのはバグの元だから、きちんとブックから指定する癖をつけておいた方がいいかと。

ブック名:book1.xls
シート名:シート1
      シート2

だとして

Workbooks("book1").Sheets("シート2").Range(Workbooks("book1").Sheets("シート2").Cells(Row1, Col1), Workbooks("book1").Sheets("シート2").Cells(Row2, Col2))

と1行で書けるけど、可読性が悪いからWithステートメントを使うか

With Workbooks("book1").Sheets("シート2")
  .Range(.Cells(Row1, Col1), .Cells(Row2, Col2))
End With

シートオブジェクトを変数として使うか

Dim objSheet2 As Sheet
Set objSheet2 = Workbooks("book1").Sheets("シート2")
objSheet2.Range(objSheet2.Cells(Row1, Col1), objSheet2.Cells(Row2, Col2))

シートオブジェクトを変数として、更にWithステートメントを使うと可読性が上がる。

Dim objSheet2 As Sheet
Set objSheet2 = Workbooks("book1").Sheets("シート2")
With objSheet2
  .Range(.Cells(Row1, Col1), .Cells(Row2, Col2))
End With
645デフォルトの名無しさん:2013/10/03(木) 05:24:56.85
シート指定だけで十分
646デフォルトの名無しさん:2013/10/03(木) 08:24:42.36
642です。
本来cellsの前にもシートを指定しないといけないんですね。withステートメントやドットもよく調べてみます。
大変助かりました。ありがとうございます。
647デフォルトの名無しさん:2013/10/03(木) 16:42:47.45
Withは可読性あげるものじゃないぞ
下手に使うと可読性下げる
648デフォルトの名無しさん:2013/10/03(木) 16:56:37.45
>>647
可読性を上げるためにも使えるでしょ。
どうしてそれを否定したいの?

ABC(50文字)DEF.foo
ABC(50文字)DEF.bar
ABC(50文字)DEF.baz
より
With ABC(50文字)DEF
 .foo
 .bar
 .baz
End With
のが圧倒的に見やすい。
649デフォルトの名無しさん:2013/10/03(木) 18:56:16.08
>>648
50文字…
650デフォルトの名無しさん:2013/10/03(木) 19:10:45.31
>>648
完全スルーでいいと思う。
651デフォルトの名無しさん:2013/10/03(木) 19:14:27.52
シート名をハードコーディングするならオブジェクト名を直接指定した方がいい
652デフォルトの名無しさん:2013/10/03(木) 19:30:01.02
>>648
ABC(50文字)DEF.foo
ABC(50文字)DEF.bar
ABC(50文字)DEF.baz
より
a.foo
a.bar
a.baz
のが圧倒的に見やすい。
653デフォルトの名無しさん:2013/10/03(木) 21:30:30.57
>>648
可読性を上げる事が出来る事を否定はしてないと思うが
あれはタイプ量を下げるのが第1の目的で、その結果ソースが短くなれば読みやすくなるかもしれんが、それは副次的な話
ちなみに第2の目的はオブジェクト参照の階層を下げる事による実行速度向上な
654デフォルトの名無しさん:2013/10/03(木) 21:51:38.43
何そのトンデモ理論
655デフォルトの名無しさん:2013/10/03(木) 22:05:48.54
>>653
苦しい言い訳乙

て言うか、見苦しいから ROM っとけよ。
656デフォルトの名無しさん:2013/10/03(木) 22:35:39.50
アルファベット50文字も使うぐらいなら
日本語のほうがわかりやすい
657デフォルトの名無しさん:2013/10/03(木) 22:45:58.54
>>648
a.foo
a.bar
a.baz
より
With a
 .foo
 .bar
 .baz
End With
のが圧倒的に見やすいか?
658デフォルトの名無しさん:2013/10/04(金) 01:00:17.12
Withは使い方が難しい。
一見、可読性が高くなる様に見えてその範囲が広くなると何のobjectで切っているのか、分かり辛くなる事もある。
だから今のVB.Netでは名残として残っていても同じ.NetフレームワークのC#では採用されていない。
左程重要な機能として扱われていないってこったね。
659デフォルトの名無しさん:2013/10/04(金) 01:32:07.12
それ範囲が狭ければ大丈夫ってことじゃん
660デフォルトの名無しさん:2013/10/04(金) 02:35:39.62
>>658
別にダメだとは言ってないじゃん。
ただ使いどころを選ばないと痛い目見るだけで。
661デフォルトの名無しさん:2013/10/04(金) 04:40:09.23
>>658
2行目は中の人がそう言ってるのか?
662デフォルトの名無しさん:2013/10/04(金) 07:34:52.09
[戻る] [次へすすむ] [宮尾すすむ]

という3つボタンを作りたいんですが、どうすればいいですか?
663デフォルトの名無しさん:2013/10/04(金) 07:40:39.93
>>657
可読性ということからして

a.foo

はaが何を示しているのかこれを見ただけじゃ全く分からない。
一文字変数は可読性を著しく下げると思え。
上記のような比較的単純なコードなら、あっさりしているように見えるけど

objSheet2.Range(objSheet2.Cells(Row1, Col1), objSheet2.Cells(Row2, Col2))

のように複雑になってくるとobjSheet2が何度も出てきてウザくなる。
例え一文字変数だったとしても。

>>658
言っていることは分かるけど、可読性を気にしている人が関数を長く書くとは思えない。

>>660
使うときはどういうものを使うのか統一しないとぐちゃぐちゃになって
かえって可読性を悪くするから気をつけなければいけない。
664デフォルトの名無しさん:2013/10/04(金) 07:47:42.80
UsedRange内のセルをすべてチェックして
セルが日付のシリアル値なら
土曜なら水色、日曜ならオレンジのようにInteriorColorをつけるには
どうすればいいですかしらん?
665デフォルトの名無しさん:2013/10/04(金) 09:06:40.24
変数渡しの「値渡し」「参照渡し」、普通はどっち使いますか?
666デフォルトの名無しさん:2013/10/04(金) 10:00:21.44
>>665
普通は適切に使い分ける
667665:2013/10/04(金) 10:04:57.41
>>666
だから普通はどっちを使うのだ?
668デフォルトの名無しさん:2013/10/04(金) 10:34:35.29
>>664
日付かどうか区別するのって実は意外と面倒
とりあえず不完全なサンプル

For Each c In ActiveSheet.UsedRange
 If InStr(c.NumberFormatLocal, "d") Then '日付かどうか
  If Int(c) Mod 7 = 0 Then c.Interior.ColorIndex = 28 '土曜=水色
  If Int(c) Mod 7 = 1 Then c.Interior.ColorIndex = 44 '日曜=オレンジ
 End If
Next
669デフォルトの名無しさん:2013/10/04(金) 10:37:14.30
>>667
両方とも使うのが普通
670デフォルトの名無しさん:2013/10/04(金) 10:51:39.59
>>667
引数の渡し方を指定しない場合はByRef(参照渡し)になる。
なので、ByRefが普通。
671デフォルトの名無しさん:2013/10/04(金) 11:15:19.57
>>668
不完全というより全然ダメダメだろ。

日付の判断ならIsDate
曜日の取得ならWeekday
曜日で判断するなら
vbSunday
vbMonday
vbTuesday
vbWednesday
vbThursday
vbFriday
vbSaturday
くらい使え。こんな糞コードだったら書くなというレベル。

>>670
省略はバグの温床。
きちんと値渡しなのか参照渡しなのか明示しないと
引数の値をを変更しちゃいけないのに変更してしまうといったバグを引き起こす。
672デフォルトの名無しさん:2013/10/04(金) 11:49:48.00
>>671
言語仕様としての「普通」が何かって話だよ。
673細川たかし:2013/10/04(金) 12:24:31.16
>>665
わたしは「矢切りの渡し」です。
674デフォルトの名無しさん:2013/10/04(金) 12:27:21.02
>>665はデフォルト値の話をしてるわけじゃないと思うんだけど・・・

とりあえず、ご存じかもしれませんが、ByValって指定しないと、デフォルトでは参照渡しになります。
その上でどっちを通常用いるかと言えば、必要な時に適切に使い分けます。
引数の中身を変更しちゃマズい場合は、値渡しをすることもありますし、
そもそも引数の中身を変更しないようにコーディングできるのであれば、
わざわざ値渡しにする必要もありません。
将来の拡張や改修やらを考えて値渡しにしておいた方がいいと思ったときは、
あらかじめ値渡しにしておくことも場合によってはあります。
蛇足ですが、そういったことも考えれば、ByRef/ByValは常に明記しておけば、
後から見ても理解しやすいし、他の人がコードを見たときにも分かりやすいです。
675665:2013/10/04(金) 12:37:08.92
>>666
0点

>>669
0点

>>670
50点

>>673
30点

>>674
100点

レスするくらいなら、80点以上のレをしないといけないよ。
676665:2013/10/04(金) 12:40:06.38
>>674
ありがとうございます。
言語間でデフォルト設定が違うことがあるから明示するべきということですね。
あとプログラマ的には参照設定を使うほうがいろんな観点でスマートということでしょうか?
スコープで言えばなるべく狭くしたほうがメンテナンス性においてスマートであるのと同様に。
677デフォルトの名無しさん:2013/10/04(金) 12:43:01.72
>>671
そんな関数や、そんなvb定数があったのですか!
ところでVBAのコードを書いてるとき、関数一覧や組み込み定数一覧を見れる機能みたいなのは
ALT+F11のエディタのどこかにありますか?
678デフォルトの名無しさん:2013/10/04(金) 13:05:21.47
F2だっけか
679デフォルトの名無しさん:2013/10/04(金) 13:25:57.21
>>676
簡単に説明しますと、値渡しはそのスコープ内に引数のデータをコピーしますので、必要もなく値をコピーしてメモリを圧迫することもない、ということですね。
もちろん、メンテナンス性もあります。

また蛇足ですが、VBAの場合、「参照設定」という言葉は全く別の物事を指しまして、
これは簡単にいうとVBAの機能拡張の設定のことです。
こちらはまた別の話になりますので、興味があれば是非調べてみて下さい。
680デフォルトの名無しさん:2013/10/04(金) 20:28:51.74
相変わらずレベルの低い奴が威張ってるな
681デフォルトの名無しさん:2013/10/04(金) 20:56:30.69
>>675
-50点

値渡しと参照渡しをそこまでしか理解してない雑魚が
人に点数付けるとかもっての他。
死んで詫びるレベル。
682デフォルトの名無しさん:2013/10/05(土) 00:01:34.47
http://www.dotup.org/uploda/www.dotup.org4553187.jpg

excelの本体(というのかな?)の大きさや位置をVBAで指定する方法を教えて下さい
例えば 縦 700(単位は何になるのかな?) 横 500
で位置が画面の左上から
下へ 100 右へ 200ほどの位置に
というような感じなんですが
683デフォルトの名無しさん:2013/10/05(土) 00:29:47.29
>>682
Application.Top = 100
Application.Left = 200
Application.Width = 500
Application.Height = 700
684デフォルトの名無しさん:2013/10/05(土) 00:45:52.75
>>683
感謝!です
685デフォルトの名無しさん:2013/10/05(土) 05:59:01.40
>>671
オメーもダメダメだよ

> 日付の判断ならIsDate

元の要件はシリアル値かどうかだから、Variant で受けて VarType( ) で判断しないとダメだろ。
686デフォルトの名無しさん:2013/10/05(土) 07:21:14.48
 セルの範囲指定で最初はC4で最後はS2の値だけ右に移動したセルを指定したい場合はどうするばいいのでしょうか?
687デフォルトの名無しさん:2013/10/05(土) 09:56:15.08
Range("C4").Resize(,Range("S2").value+1)
688デフォルトの名無しさん:2013/10/05(土) 18:06:44.52
ResizeじゃなくてOffsetじゃないのかと
689デフォルトの名無しさん:2013/10/05(土) 19:23:09.00
いや、>>687をFor Eachで回せってことか
690デフォルトの名無しさん:2013/10/05(土) 20:42:16.45
範囲指定って言ってるんだからResizeで合ってる
Offsetだと単一セルになってしまう
691デフォルトの名無しさん:2013/10/05(土) 20:52:26.79
>>690
仕様が分からなければ質問者に聞けばいいだけのこと。
小学生にだってわかるぞ、って小学生に失礼か。
692デフォルトの名無しさん:2013/10/05(土) 21:02:02.13
>>691
しゅくだいでもやってろ
693デフォルトの名無しさん:2013/10/05(土) 21:09:51.97
>>690
セルを指定したいと言ってるけど?
694デフォルトの名無しさん:2013/10/05(土) 23:44:53.83
「最初はC4で最後はS2の値だけ右に移動したセルを指定したい」
セル範囲を指定したいということなので>>687で正解でしょ。
Range("C4").Resize(,Range("S2").Value+1).Select
695デフォルトの名無しさん:2013/10/06(日) 03:43:38.17
いや、よく読んでみると、
最初指定しているセル範囲は1セルで、その後範囲の変更ではなく移動と書いてある。
696デフォルトの名無しさん:2013/10/06(日) 03:43:49.54
元の質問者に説明してもらわん事には何とも判断つかん
最後はってあるから、単一セルを順次処理したいのかもしれん
それだったら>>689、範囲なら>>687、単一セルなら>>688
あ、もうどうでもいいかw
697デフォルトの名無しさん:2013/10/06(日) 04:54:01.18
「セルを指定したい」とちゃんと書いてあるのに、なんで範囲の話がでてくるんだ?
698デフォルトの名無しさん:2013/10/06(日) 06:32:50.40
>>697
だね。

この時点で2つの見方が出てきてるわけだから、素直に質問者に聞けばいい。
質問者に聞けば答えがすぐ出るのに聞かずに自分の主張を通すっていうのは
質問者と回答者が同一人物、或いは質問者と回答者がグルになってるという疑いが出てくる。

何でそこまでして書き込む必要があるのか?
やっぱ金貰ってんだろうなぁ。
699デフォルトの名無しさん:2013/10/06(日) 07:07:19.24
>>697
「セルの範囲指定で」って書いてあるからだろ
700デフォルトの名無しさん:2013/10/06(日) 10:23:32.42
まぁ1セルでも範囲は範囲だけどな
701デフォルトの名無しさん:2013/10/06(日) 12:03:37.96
>698 の「質問者と回答者が同一人物」に同意
702デフォルトの名無しさん:2013/10/06(日) 13:16:45.30
 ┌─────────┐
 │               .|
 │  キチガイ警報!  │
 │               .|
 └―――──――――┘
      ヽ(´ー`)ノ
         (  へ)
          く

                     |\
┌──────────┘- \
│  気の触れた方が          \
│                     /
└──────────┐- /
      ヽ(´ー`).ノ       |/
        (  へ)
        く

                  - = ≡三                    |\
               - = ≡三  ┌──────────┘- \
               _ = ≡三    │                     \
                ̄ = ≡三    │     いらっしゃいます       /
               - = ≡三  └──────────┐- /
        (´ー`)        - = ≡三                     |/
      ( ヽ ヽ)
       /  >
703デフォルトの名無しさん:2013/10/06(日) 19:25:43.16
例えば
シート1の3つのセルの値と
シート2の3つのセルの値がすべて同じかどうかを調べる時
Searchを使うのとifを使うのと、どちらが良いでしょうか?
704デフォルトの名無しさん:2013/10/06(日) 20:57:09.92
>>703
なんでifが出てくるの?
705デフォルトの名無しさん:2013/10/06(日) 20:58:36.93
>>704
初心者の方ですか?
Ifというのは条件分岐を行う構文です。
Ifを使うことで値を比較することができるんです。
706デフォルトの名無しさん:2013/10/06(日) 21:05:56.97
比較なら「EXACT」という数式もありますよ
707デフォルトの名無しさん:2013/10/06(日) 21:07:06.16
helpから
Search メソッドおよび SearchB メソッドは、指定された文字列を他の文字列の中で検索し、その文字列が最初に現れる位置を
左端から数え、その番号を返します

重要 Search メソッドは、1 バイト文字セット (SBCS) を使う言語での使用を意図したもので、SearchB メソッドは、2 バイト文字
セット (DBCS) を使う言語での使用を意図したものです。

Search って検索でしょ?判断はどちらにしろIfを使わんとダメなんじゃ?というかIfの中でSearchを使うんでしょ?
どちらがいいかとかいう問題じゃないと思うけど
708デフォルトの名無しさん:2013/10/06(日) 21:19:37.70
>>705
はやっ
きもっ
709703:2013/10/06(日) 21:28:41.30
スイマセン説明不足だったみたいで・・・
ifで回すとループが入ります
Searchでネストにしたほうが良いのだろうか
でもどのみちifは使うから、それならifでいいじゃないだろうか
そんな疑問が自分の中で解決しなくて
こういったケースでは処理や見た目的にどちがら使われるのか
お聞きしたかったのです
710デフォルトの名無しさん:2013/10/06(日) 21:47:53.85
>>697
申し訳ないけど、If と Search のそれぞれのコード貼ってくれないかな。
711デフォルトの名無しさん:2013/10/06(日) 21:52:36.34
>>709 へ質問
@「3つのセル」の位置は、シート1・シート2でそれぞれ固定?、
それとも、どちらかのセル位置は不特定?
不特定ならば、範囲は決まっている?
A「値がすべて同じかどうかを調べる時」とは、
 「セル.Valueが同一である時」と思って良いのかな?
712710:2013/10/06(日) 22:04:44.20
ごめん >>697、アンカー間違えてたわ。

>>697>>709
713デフォルトの名無しさん:2013/10/06(日) 22:35:25.52
>>709
>ifで回すとループが入ります
>Searchでネストにしたほうが良いのだろうか
Ifでネストしても良いんだが?たかだが三つだろ
まあ、決まった場所の同一比較なら俺ならSearchなんて使わんが
Searchってのは文字通り場所を探すためのもんだろ
714703:2013/10/06(日) 22:47:02.67
>>710
これから作るのでないです
>>711
@それぞれ固定です
A順番が違う場合もあります
シート1 A1、1 B1、2 C1、3
シート2 A1、3 B1、2 C1、1
といった具合にです。全部一致しない場合もあります。
>>713
Searchじゃダメですか
色々と考えてみましたがifだけだと無理?
countifとifを組み合わせる方法はどうでしょう
715710:2013/10/06(日) 22:52:06.50
>>714
> これから作るのでないです

イメージもないんか?
716デフォルトの名無しさん:2013/10/06(日) 22:52:58.39
>>703
例えを書くなら具体的に書いてくれないか?
717デフォルトの名無しさん:2013/10/06(日) 23:03:01.25
>>714
だからSearchはあくまでも「検索」するためのもので、「比較」するためのものじゃないでしょ。

で、countif?ここはVBAのスレだけど?
718デフォルトの名無しさん:2013/10/06(日) 23:26:28.30
>>703
searchかifの二択か
ならifにしとけば間違いない
719デフォルトの名無しさん:2013/10/06(日) 23:36:27.92
関数が手っ取り早いけどVBAじゃないとだめなの?
720デフォルトの名無しさん:2013/10/07(月) 00:56:18.48
チェックボックスについて、教えて下さい。

プロパティにグループネームをつけることが出来ますが、
このグループネーム別にチェックのオンオフは出来るのでしょうか?

色々検索してみましたが、グループネームで選択するようなコードが見つかりませんでした。

今は1つ1つvalueでオンオフを切り替えるコードで書いてますが、
これだとチェックボックスが増えた時や減った時に
コードを毎回書き直さなければいけなくなるので…

Excelのバージョは2010でOSは7です。
Excelは関数についてはそれなりに使いこなせる自信がありますが
VBAは最近覚えたばかりです。

よろしくお願いします。
721デフォルトの名無しさん:2013/10/07(月) 01:41:33.45
GroupBoxの子にすれば自動的に子同士で排他掛かるけどそういうことじゃなく?
UI的に排他関係にあるチェックボックスはGroupBoxで囲うのがWindowsの流儀だし、
ユーザー視点でもそれが期待した動作だと思うんだけどそれを捻じ曲げる必要があるということですか?
722デフォルトの名無しさん:2013/10/07(月) 01:45:02.08
こういうことか?
Private Sub CommandButton1_Click()
Call CheckClear(Me, "Group1")
End Sub

Sub CheckClear(f As UserForm, gname As String)
Dim c As Control
For Each c In f.Controls
If TypeName(c) = "CheckBox" Then
If c.GroupName = gname Then
c.Value = False
End If
End If
Next
End Sub
723デフォルトの名無しさん:2013/10/07(月) 04:54:03.42
>>721
それラジオボタンじゃないの
724デフォルトの名無しさん:2013/10/07(月) 08:28:38.04
>>722
ありがとうございます。
初めて見るコードなので今から解読しながら試してみます。

>>723
ラジオボタンではなく、チェックボックスです。
チェックリストを作っていて
項目ごとにある複数個のチェックボックスを一気に(項目ごとに)リセットしたいのです。
725686:2013/10/07(月) 10:26:03.26
>>687
おかげ様で何とか出来ました。
意図が伝わらず大変申し訳ございません。
C2を起点にS4の値だけ列を選択したかったのです。S4=16であればC2からC18までを選択したかったのです。
マクロだと("C2:C18")になり、手が思いついませんでした。
問題の記述がおかしいとの指摘、ありがとうございます。
726デフォルトの名無しさん:2013/10/07(月) 10:47:03.81
>>721
ごめんなさい、見落していました。
返信ありがとうございます。

グループボックスで囲むというのはラジオボタンという認識がありました。
チェックボックスで使う事を考えていませんでしたのでこちらも試してみます。

722さんのと合わせて試してみます。
また報告します。
727デフォルトの名無しさん:2013/10/07(月) 12:51:41.59
>>703 >>714
Sub test3()
Dim sh1(3) As Boolean
'Dim sh1_to_2(3) As String 'シート2の対応セル位置を利用する時、各コメントを解除。
 With Worksheets("シート1")
  For sh1_c = 1 To 3
   If .Cells(1, sh1_c).Value = Worksheets("シート2").Cells(1, 1).Value Then
    sh1(sh1_c) = True
'    sh1_to_2(sh1_c) = "sh2の" & "A1"
   ElseIf .Cells(1, sh1_c).Value = Worksheets("シート2").Cells(1, 2).Value Then
    sh1(sh1_c) = True
'    sh1_to_2(sh1_c) = "sh2の" & "B1"
   ElseIf .Cells(1, sh1_c).Value = Worksheets("シート2").Cells(1, 3).Value Then
    sh1(sh1_c) = True
'    sh1_to_2(sh1_c) = "sh2の" & "C1"
   End If
  Next
'.Cells(3, 1).Value = sh1_to_2(1) 'シート2の対応セル位置を記録
'.Cells(3, 2).Value = sh1_to_2(2)
'.Cells(3, 3).Value = sh1_to_2(3)
End With
 If sh1(1) = True And sh1(2) = True And sh1(3) = True Then
  MsgBox "all match"
 Else
  MsgBox "No match"
 End If
End Sub
シート1の、3つのセル分だけif文を繰り返せば、if分だけでも可能、しかし非効率。セル数が多いなら、一度合致したシート2のセルを比較対象から外す方法も有るでしょう、
今回は、セル数が少ないのでシート2の全セルと比較。またシート2のセルもFor〜Nextで回せば、IF文は1回で済む。
推こうしてないから、無駄有り、考え方の一つとして。きっと他の人からもっと良いのが出るでしょう。
728デフォルトの名無しさん:2013/10/07(月) 13:20:44.85
>>727
range使えよ。

function compareRange(range1, range2) as boolean
 if range1.offset(0, 0).value = range2.offset(0, 0).value then ' 的なコード
 ' 関数にすれば、違ったら即falseで抜けられる
end sub

result = compareRange(worksheets("シート1").cells(1, 1), worksheets("シート2").cells(1, 1))
みたいな感じで。
729デフォルトの名無しさん:2013/10/07(月) 13:24:35.52
>>728
実引数を範囲で指定する方が好き。
compareRange(worksheet("Sheet1").range("A1:A3"), worksheet("Sheet2").range('"A1:A3"))
730710:2013/10/07(月) 15:05:26.62
>>728
引数の型も指定しなよ
731デフォルトの名無しさん:2013/10/07(月) 15:22:54.16
糞コードを晒しあったり、叩きあったりするスレじゃないんだよ。
732デフォルトの名無しさん:2013/10/07(月) 16:43:45.14
>>730
めんどくせ。
function compareRange(byref range1 as range, byref range2 as range) as boolean
733デフォルトの名無しさん:2013/10/07(月) 16:45:23.64
>>731
お前も素晴らしいコードを晒せば?
734デフォルトの名無しさん:2013/10/07(月) 17:02:55.73
>>733
スレのルールを守れないヤツと同類になりたくないね。
735デフォルトの名無しさん:2013/10/07(月) 17:07:04.67
>>734
は?
コードを書いてはいけませんなんてルール、いつからできたんだ?
736デフォルトの名無しさん:2013/10/07(月) 17:11:56.76
まだ、コードに対してなにかコメントしたら「叩いてる」とか思う奴いるのか。
737デフォルトの名無しさん:2013/10/07(月) 17:13:27.52
桃白白のときも、単なる「糞コード乙」以外の有用なコメントが沢山あったのに、桃白白自身が
叩かれた、叩かれたと騒いだから話が大きくなっただけで。
738デフォルトの名無しさん:2013/10/07(月) 17:23:27.14
>>735
あれだけ叩かれてスレのルールを理解しようともしないっていうのは問題あると思うな。
いい加減さ、スレのルールさえ守れないやつがコード書いても、所詮糞コードにしかならないからw
739デフォルトの名無しさん:2013/10/07(月) 17:27:46.32
論理破綻
740デフォルトの名無しさん:2013/10/07(月) 17:36:07.06
プログラム板なんだから、コードで語り合おうぜ
741デフォルトの名無しさん:2013/10/07(月) 17:39:08.86
>>740
は?質問スレなんだが。
コードで語りたいのなら別スレ立てろって何度言えば分かるんだ?
コードで語り合おうぜって言っておきながらコードで語ってないしw
742デフォルトの名無しさん:2013/10/07(月) 18:21:45.14
>>741
> コードで語りたいのなら別スレ立てろって何度言えば分かるんだ?

いや、お前に言われる筋合いないんだけど。
743デフォルトの名無しさん:2013/10/07(月) 18:28:16.13
>>741
コードを書いてはいけませんなんてルール、いつからできたんだ?
744デフォルトの名無しさん:2013/10/07(月) 18:29:13.55
つか、お前コード書けないんじゃないの?
745デフォルトの名無しさん:2013/10/07(月) 18:29:19.49
ここは高度なコードスレですね
746デフォルトの名無しさん:2013/10/07(月) 18:35:17.64
行動あるのみ
747デフォルトの名無しさん:2013/10/07(月) 18:39:27.39
>>743
いつできたかは過去ログ見れば分かるだろ。
>>1★5を理解しようともしないんだから困ったもんだ。
748デフォルトの名無しさん:2013/10/07(月) 18:57:58.60
どこをどう曲解したら>>1★5がコード書いては行けませんって解釈になるのか
749デフォルトの名無しさん:2013/10/07(月) 19:23:14.31
>>747
自分の言葉で説明できないのか?ん?
750デフォルトの名無しさん:2013/10/07(月) 19:40:51.74
クレクレはスルーしろと解釈するべきルールが無視されてるのが問題ですはき
751デフォルトの名無しさん:2013/10/07(月) 19:53:13.89
>>1★5は>>356でも言われているようにクレクレ君対策。

> ヒントを貰えばあとは自力でなんとかしますって人のみどうぞ。

ってことで、回答者はヒントを回答すればいいだけ。
コードを書く奴は質問者のやりとりを無視して、ヒントではなくいきなり答えを書いている。
こういうことが続くと何も言わなくても答えが貰えるということになり、
こういうコードが欲しいという依頼が来るようになるし、実際依頼が来ている。

いきなりコードで回答するという対応は結果的にクレクレ君を容認することになる。

ということでいきなりコードで回答するのは問題。
条件を付けてコードを書くなっていうと、その条件を変な解釈をして
いきなりコードで回答するやつが出てくるだろうから

コードは書くな

という解釈で充分だと思う。
コードを書かなくて困ることもないだろうしね。
752デフォルトの名無しさん:2013/10/07(月) 19:55:11.41
>>751
クレクレ君を容認する方向でどうかお考えいただけないだろうか。
753デフォルトの名無しさん:2013/10/07(月) 19:56:48.84
>>752
絶対ダメ。
質問スレじゃなくなるだろ。
754デフォルトの名無しさん:2013/10/07(月) 19:58:33.50
>>753
実装方法を知ることできるでしょう。
りっぱな質問スレですよ。
755デフォルトの名無しさん:2013/10/07(月) 19:59:48.18
>>754
実装方法は別の話でしょ。
756デフォルトの名無しさん:2013/10/07(月) 20:03:09.45
>>755
別の話ではありませんよね。Excel VBA質問スレですし。
どうして別の話だと思うんですか?
757デフォルトの名無しさん:2013/10/07(月) 20:06:19.46
>>756
大きくくくりすぎ。
758デフォルトの名無しさん:2013/10/07(月) 20:08:21.49
また>>1★5厨か。
そいつは前々スレで>>1★5についてどうするか住人が話し合っている最中に
勝手にスレ立てたキチガイだからほっといていいよ。
759デフォルトの名無しさん:2013/10/07(月) 20:11:49.44
>>757
なにをですか?大きいとなにかいけませんか?
760デフォルトの名無しさん:2013/10/07(月) 20:17:50.07
>>759
ようはクレクレ君対策にならないってこと。
そもそもクレクレ君対策っていうのを理解してないのか?
761デフォルトの名無しさん:2013/10/07(月) 20:21:16.92
>>760
ええ、ですからそのクレクレ君を容認する方向では
どうしていけないのか理由を尋ねていました。
まだよくわかりません。

質問スレではなくなるからダメだといわれた。
しかし、質問スレでなくなるわけではないですよね。
別の話だとも言われた。
しかし、別の話ではありませんよね。
大きくくくりすぎともいわれた。
なにをですか?
762デフォルトの名無しさん:2013/10/07(月) 20:24:50.12
>>761
クレクレ君を容認するっていうことは質問ではなく、コード作成依頼スレになるってこと。
文章は質問しているように見えて実はコード作成依頼ということになる。

質問スレではなく依頼スレになるって理解できないのかな?
763デフォルトの名無しさん:2013/10/07(月) 20:27:15.74
>>762
依頼はコードの実装についての質問ともとれます。
依頼も質問も変わりません。第3者がそのコードをみて問題解決につながる
こともあると思います。すくなくともいまはまだあなたの言ってることを理解できません。
764デフォルトの名無しさん:2013/10/07(月) 20:29:53.68
やっぱり何度も問題になる>>1★5は一度削除するべきなんだよ。
それでダメだったらダメなりに新しい規約を追加すればいいだけ。
765デフォルトの名無しさん:2013/10/07(月) 20:30:16.17
いろいろ無駄な話が続いてますが、質問の方は遠慮なくどぞ〜
766デフォルトの名無しさん:2013/10/07(月) 20:30:30.53
問題にしてるのはひとりなんだろうけどね・・・
767デフォルトの名無しさん:2013/10/07(月) 20:31:18.23
>>763
質問と依頼は別。
何で一緒と捉えるのか意味が分からん。
きちんと説明してくれ。
768デフォルトの名無しさん:2013/10/07(月) 20:33:49.00
>>767
これをどう実装すればいいのかわかりません。
こう書けばいいよ。
りっぱな質問のやりとりですよね。
依頼ともとれます。依頼と質問は変わりません。
769デフォルトの名無しさん:2013/10/07(月) 20:36:36.03
そもそも、いきなりコードで書くと何でクレクレ君容認と言う事になるんだ?
回答方式のタマは回答者が握ってるんだが?
770デフォルトの名無しさん:2013/10/07(月) 20:37:56.65
>>763
「こういうコードを書いてください。」

これも質問になるんだ。
俺には依頼にしか見えないが。

>>768
文章は質問でも実質依頼だから。
771デフォルトの名無しさん:2013/10/07(月) 20:43:26.93
という屁理屈
772デフォルトの名無しさん:2013/10/07(月) 20:47:30.17
>>768
> これをどう実装すればいいのかわかりません。

これは質問というより質問者の実情でしょ。
だからどうしたいの?ってことになるんだが。
773デフォルトの名無しさん:2013/10/07(月) 20:48:16.05
>>769
コード書いてくれるなら俺の仕事も丸投げさせて貰うけど、いいの?
774デフォルトの名無しさん:2013/10/07(月) 20:50:03.97
>>770
依頼した人はコードを知りたいのでしょうね。
質問ともとれますね。コードを書くのがめんどうだとか
使われてる気がしていやだと思うなら返信しなければいいだけですし。
問題ないと思います。
775デフォルトの名無しさん:2013/10/07(月) 20:50:13.25
なんだ今日は生理か?

「質問と依頼は一緒」とか面白い事いうな。
クレクレ厨を容認して自分は糞コード量産して神扱いされたいだけのかまってちゃんは
いい加減どっか消えてくんねぇかな。
776デフォルトの名無しさん:2013/10/07(月) 20:51:23.84
このスレでコードが書けないと得するのはだれか
 他のVBA質問サイトへ質問者が流れ サイトの広告収入が増える。
逆に、このスレでコードが書かれると損するのはだれか
 同じく他のVBA質問サイト サイト訪問者が減り 広告収入が減る。
この辺りが本意では。
777デフォルトの名無しさん:2013/10/07(月) 20:55:02.36
>>773
お前の仕事など知るかw
こっちは書きたい時に書きたい回答を書くだけだ。
別にルール違反でもないしな。
778デフォルトの名無しさん:2013/10/07(月) 20:56:17.64
>>774
何で質問に取れるのか全く理解不能w
返信しなければいいと言っているけど、返信している人間が
存在している限りクレクレ君問題が続くわけだが。

完全に言葉遊びになってるね。
779デフォルトの名無しさん:2013/10/07(月) 20:59:01.96
>>778
お前がここから消えれば一挙に問題が解決すると思うよ。
この件で「クレクレ君ガー」とか騒いでるのお前だけだから。
780デフォルトの名無しさん:2013/10/07(月) 21:00:10.66
>>778
クレクレ君を容認してしまえば問題ではなくなりますよ。
781デフォルトの名無しさん:2013/10/07(月) 21:01:42.68
>>780
質問スレである限りありえないw
782デフォルトの名無しさん:2013/10/07(月) 21:02:25.10
>>781
どうしてありえませんか?
783デフォルトの名無しさん:2013/10/07(月) 21:05:46.95
根底に「クレクレを容認したい」ってのがある限り答えはNoで有り続けるけどね。

自分で頑張る人をそっと後押しするのが質問スレの役割。
クレクレ容認したら自分で考える奴がどんどんいなくなって、
スクリプトキディ量産するだけ、ってのが目に見えてるしな。
784デフォルトの名無しさん:2013/10/07(月) 21:07:46.73
>>777
ウザいと思った?w
お前が書かないとしてもあいつが書くだろ。
それを見てクレクレ君がどんどん集まってくる。
785デフォルトの名無しさん:2013/10/07(月) 21:08:07.83
>>783
コードを見て自身が考えるかどうかはそいつの自由だろ。押し付けがましい。
786デフォルトの名無しさん:2013/10/07(月) 21:10:23.12
>>783
それはちょっと自意識過剰かなと。
質問するのってけっこう頭使いますからね。
大きなお世話だと思いますよ。
787デフォルトの名無しさん:2013/10/07(月) 21:10:24.25
>>784
クレクレ君が集まって来ようがどうでもいい。
嫌なら答えなければいいだけ。
788デフォルトの名無しさん:2013/10/07(月) 21:11:13.32
セルオブジェクトのプロパティの
Formula
FormulaR1C1
は、どういうときに使いますか?
使い分けなども詳しく知りたいのですが
789デフォルトの名無しさん:2013/10/07(月) 21:14:30.25
>>787
答えるバカがいるから問題なんだが。
790デフォルトの名無しさん:2013/10/07(月) 21:15:29.30
>>786
仕様も理解せず、いきなり全てコードで答えるのも大きなお世話かと。
791デフォルトの名無しさん:2013/10/07(月) 21:16:34.12
>>783
「自分で頑張る人をそっと後押しするのが質問スレの役割」と言ったが
>788 の質問に対してお手本を見せてくれ。
792デフォルトの名無しさん:2013/10/07(月) 21:17:51.18
コード作成依頼スレ立てたらいいじゃん
793デフォルトの名無しさん:2013/10/07(月) 21:17:59.36
>>790
質問者はそれを見て違うところは違うといい
取り入れられるところは取り入れ自分で考えるでしょう。
ほっとけばいいのではないでしょうか。
794デフォルトの名無しさん:2013/10/07(月) 21:21:48.69
>>793
そもそもクレクレ君対策になってないだろ。
クレクレ君容認でいる限り恐らく何を言っても通じないようだし
いい加減コード作成依頼スレを立てたら?
795デフォルトの名無しさん:2013/10/07(月) 21:23:02.42
>>789
それも答える奴の自由だとおもうが。
796デフォルトの名無しさん:2013/10/07(月) 21:23:45.91
>788
Formula
&nbsp;A1形式で計算式を使いたいとき
FormulaR1C1
&nbsp;R1C1形式で計算式を使いたいとき

使い分けはつかう計算式によって使い分けます
797デフォルトの名無しさん:2013/10/07(月) 21:24:21.80
>>794
ええですから対策する必要ないのではないですかといっているつもりです。
依頼と質問は同じという立場なので私が立てるとしたら質問スレですね。
質問スレここでよくないですか?
798デフォルトの名無しさん:2013/10/07(月) 21:24:25.04
>>794
クレクレ君よりお前の様な荒らし対策の方がよっぽどプライオリティ高いと思うが
799デフォルトの名無しさん:2013/10/07(月) 21:25:31.60
コードを書くとクレクレ君容認になるって発想は
生活保護があると誰も働かないとでも思ってるのかな
800デフォルトの名無しさん:2013/10/07(月) 21:26:46.79
>>797
すまんが、質問と依頼が一緒であるということであるなら依頼スレでもいいんでしょ?
何で質問スレに固執するのか理解できない。
801デフォルトの名無しさん:2013/10/07(月) 21:28:15.65
>>800
それは何で態々別スレにする必要があるのかと同義語だな
802デフォルトの名無しさん:2013/10/07(月) 21:29:24.67
>>800
質問の方が幅が広いかなと。
803デフォルトの名無しさん:2013/10/07(月) 21:29:44.19
>>802
理由になってない。
804デフォルトの名無しさん:2013/10/07(月) 21:31:49.23
>>803
できるだけ多くのやり取りができるのがいい。
ならできるだけ多くの人がやり取りできるようなものがいい。
質問の方が依頼より言葉の幅が広い。だから質問の方がいい。
805デフォルトの名無しさん:2013/10/07(月) 21:31:52.89
>>803
お前ん中ではな
806デフォルトの名無しさん:2013/10/07(月) 21:36:44.50
大体さ、何でクレクレ容認したいの?
807デフォルトの名無しさん:2013/10/07(月) 21:37:35.17
>>804
>質問の方が依頼より言葉の幅が広い。だから質問の方がいい。

質問と依頼の意味が違うっていうことを認めてるようなものなんだが。
808デフォルトの名無しさん:2013/10/07(月) 21:39:19.97
>>807
同じところもあれば違うところもあります。
まったくぜんぶ同じならひとつのことばのはずです。
809デフォルトの名無しさん:2013/10/07(月) 21:39:25.62
>>806
恐らく・・・>>775
810デフォルトの名無しさん:2013/10/07(月) 21:40:17.88
>>806
容認しとけばお前の様な荒らしが>>1★5を逆手に取って一々コード書く度に荒らしに来ることが無いからに決まってるだろ。
811デフォルトの名無しさん:2013/10/07(月) 21:40:51.64
そろそろ「住み分け」って言葉憶えようか。
812デフォルトの名無しさん:2013/10/07(月) 21:42:24.02
>>811
そうだな。荒らしは別スレ立てて好きなだけ荒らしてろ。
813デフォルトの名無しさん:2013/10/07(月) 21:44:21.10
>>808
ということは>>763>>774は嘘ってことか。
いい加減ふざけるのはやめにしようや。
814デフォルトの名無しさん:2013/10/07(月) 21:47:04.44
クレクレされたいだけならコード作成依頼スレ立ててそっちで勝手に神扱いでもなんでもされてればいいよ
815デフォルトの名無しさん:2013/10/07(月) 21:47:39.47
>>813
どうしてそうなりますか?
ことばはすべてがまったく同じ意味かすべてがまったく異なる意味かの
二択ではないという旨を述べたつもりです。
816デフォルトの名無しさん:2013/10/07(月) 21:48:39.20
>>814
そんなことはだれも言ってませんよね。
クレクレだと過剰に反応するのをやめませんか。
817デフォルトの名無しさん:2013/10/07(月) 21:49:40.48
>>813
どこの国の人?
広域で捉えたら当然そうなるだろう。
自分の読解力の無さを棚に上げて人を嘘つき呼ばわりとか
ちょっと日本人離れしているな。
818デフォルトの名無しさん:2013/10/07(月) 21:52:31.32
>>816
単に質問と依頼は違うっていうことだけなんだけどね。
それが理解できないんだから過剰に反応されても文句は言えないよ。
819デフォルトの名無しさん:2013/10/07(月) 21:54:24.76
>>816
クレクレ容認すると結果的にそうなるんだよ。
努力せず結果が得られるんだから。
820デフォルトの名無しさん:2013/10/07(月) 21:54:51.61
>>818
ちょっとコードを書いただけで過剰に反応するお前の方がよっぽど混同していると思うぞ
821デフォルトの名無しさん:2013/10/07(月) 21:55:39.78
>>818
その違うんだって主張するのが過剰に思えるってことなんですよ。
ほっとけばいいのではありませんか。
822デフォルトの名無しさん:2013/10/07(月) 21:56:20.19
>>821
そう思うのであればお前が変に反応しなければいいじゃね?
823デフォルトの名無しさん:2013/10/07(月) 21:56:38.65
>>819
だからなんで結果のケツ持ちまで回答者が面倒見なければならんのよ。
ただの押し付けだよ。
824デフォルトの名無しさん:2013/10/07(月) 21:57:14.78
>>823
回答者もケツ持たないということなら押し付けだろw
825デフォルトの名無しさん:2013/10/07(月) 21:58:41.60
>>819
努力するしないはそのひとの勝手ですよね。
他人が掲示板の書き込みだけみて判断できるようなものでもないですし
判断できたとしてどうこういうようなものでもないと思いますよ。
826デフォルトの名無しさん:2013/10/07(月) 21:58:51.10
>>824
は?言ってる意味が分からない。
日本語で。
827デフォルトの名無しさん:2013/10/07(月) 22:00:42.09
>>822
ええこれは依頼だと過剰に反応することはしてないつもりです。
828デフォルトの名無しさん:2013/10/07(月) 22:02:07.05
>>825
お前の見解なんてどうでもいいんだが。
このスレではクレクレ君はNoというルールになっている、ただそれだけ。
829デフォルトの名無しさん:2013/10/07(月) 22:03:33.34
>>825
それでもいいと言われても、それじゃ嫌と言うのがこのスレの★5なんだよ。
だからコード作成依頼スレ立てれば?って言ってるの。
830デフォルトの名無しさん:2013/10/07(月) 22:04:34.56
>>828
ルールだからあなたはそれに従っているだけだと。
ではルールを変えましょうよ。改善しましょう。
831デフォルトの名無しさん:2013/10/07(月) 22:04:37.52
というわけで次スレは>>1★5は削除ということで。
前回はそんな流れの中この荒らしが勝手にスレ立てたので
今でもこんな騒ぎになるからな。
832デフォルトの名無しさん:2013/10/07(月) 22:04:38.43
>>827
充分過剰に反応してるよw
833デフォルトの名無しさん:2013/10/07(月) 22:05:49.00
>>829
それじゃ嫌と★5が言ってると。
では★5を変えませんか?
834デフォルトの名無しさん:2013/10/07(月) 22:06:23.23
>>832
そうでしょうかね。
835デフォルトの名無しさん:2013/10/07(月) 22:06:38.39
>>830-831
このルールが嫌なら別スレ立てればいいのに。
このスレに何故このスレに固執したいのか?
836デフォルトの名無しさん:2013/10/07(月) 22:06:40.18
>>830
それは貴方にとっての改善ね。
俺は今のままでいいと思うよ。
837デフォルトの名無しさん:2013/10/07(月) 22:07:24.61
>>833
変えると言うか消そう。
本当はおかしな所満載なんだけど。
838デフォルトの名無しさん:2013/10/07(月) 22:08:05.91
>>836
同意。
質問スレという意味でも、今のままでいい。
839デフォルトの名無しさん:2013/10/07(月) 22:10:23.73
>>835
そこまで言うならコード不可スレ立ててそこでやれ。
正直お前一人の為に皆が迷惑してることくらいいい加減気付いて空気読め。
840デフォルトの名無しさん:2013/10/07(月) 22:11:52.31
>>837
ね、やっぱりそう思うでしょ。
もういい加減ウンザリ
841デフォルトの名無しさん:2013/10/07(月) 22:12:29.57
>>839
なんでだよw別スレ立てたら負けとかあんの?
842デフォルトの名無しさん:2013/10/07(月) 22:14:38.16
>>839
何を言ってるのかさっぱり分からん。
このスレのルール自体クレクレ君対策をしている訳だから別のスレを立てる意味が無い。
843デフォルトの名無しさん:2013/10/07(月) 22:14:56.27
>>841
別にコード書いた位で荒らさなければ何も言うつもりも無かった。
ここ暫くだって様子を見てた。
お前はやり過ぎた。
844デフォルトの名無しさん:2013/10/07(月) 22:15:42.18
試験的にでもいいからコード作成依頼やってみればいいじゃん。
需要あると思うよ。
845デフォルトの名無しさん:2013/10/07(月) 22:17:46.46
>>844
だね。
試作的に>>1★5を消してみようよ。
846デフォルトの名無しさん:2013/10/07(月) 22:18:06.99
いやコード作成依頼スレを建てろって意味でね?
847デフォルトの名無しさん:2013/10/07(月) 22:18:12.69
>>844
それだけ嫌がるってことは、今までの作成依頼は自作自演の可能性が高いんだけどねw
848デフォルトの名無しさん:2013/10/07(月) 22:19:32.78
>>845
あ、ゴメン
コード作成依頼スレを立ててみたら?って意味。
849デフォルトの名無しさん:2013/10/07(月) 22:19:40.36
妄想癖もお持ちのようですw
850デフォルトの名無しさん:2013/10/07(月) 22:20:40.27
>>848
いや、消そう消そう。
それがいいよ。
851デフォルトの名無しさん:2013/10/07(月) 22:22:17.85
新しくやりたいことがあるんなら余所でやってくださいな
852デフォルトの名無しさん:2013/10/07(月) 22:22:46.57
次スレ立てておいた

Excel VBA 質問スレ Part32
http://toro.2ch.net/test/read.cgi/tech/1381151995/
853デフォルトの名無しさん:2013/10/07(月) 22:23:11.59
どんだけ自己中だよこいつwww
何が何でもこのスレの★5消してクレクレ厨呼び込みたいだけじゃねーかwww
854デフォルトの名無しさん:2013/10/07(月) 22:24:12.81
>>852
な、こう言う奴なんだよコイツは
855デフォルトの名無しさん:2013/10/07(月) 22:24:23.91
コード容認したらあいつが戻ってきて糞コードだのなんだのって荒れるのが予想出来過ぎてダメ。
856デフォルトの名無しさん:2013/10/07(月) 22:24:40.93
で、こっちが作成依頼スレ

http://toro.2ch.net/test/read.cgi/tech/1381151717/
857デフォルトの名無しさん:2013/10/07(月) 22:25:17.87
というかその「あいつ」がこいつだろ?
あっ、もしかして言っちゃいけなかった・・・?
858デフォルトの名無しさん:2013/10/07(月) 22:25:21.66
ま、今のタイミングなら過疎ると消されるけどな
859デフォルトの名無しさん:2013/10/07(月) 22:28:06.49
>>855
あいつはどっちにしたってここにも来るだろ?
860デフォルトの名無しさん:2013/10/07(月) 22:30:08.92
お前らは一体何をしたいんだwww
861デフォルトの名無しさん:2013/10/07(月) 22:31:29.25
おっけーです!
862デフォルトの名無しさん:2013/10/07(月) 22:34:08.14
いいこと考えた
テンプレに「雑談や議論は禁止」って入れればテンプレ絶対主義者を一掃できる
863デフォルトの名無しさん:2013/10/07(月) 22:34:59.02
>>862
えー
864デフォルトの名無しさん:2013/10/07(月) 22:37:43.33
コード依頼作成スレも出来たし、大手を振ってこのスレにコードを書くことが出来るな
865デフォルトの名無しさん:2013/10/07(月) 22:47:26.75
>>862
ばかじゃねーの
866デフォルトの名無しさん:2013/10/07(月) 23:06:48.40
行動力のあるキチガイって怖いな
867デフォルトの名無しさん:2013/10/08(火) 05:59:44.03
クレクレ君なんて、スルーしてもいいし簡単に答えれるなら暇なら答えればいいし、別に見苦しくもないし邪魔でもない。
でも毎回のように起きるこの無駄な議論のほうが数倍邪魔だと思う。
スレ伸びてるなと思ったらたいてい無駄な争いが起きてる。
868デフォルトの名無しさん:2013/10/08(火) 06:30:00.68
>>867
スルーできないバカがいるから問題になる。
869デフォルトの名無しさん:2013/10/08(火) 07:01:12.87
なんだ、もう終わり?
870デフォルトの名無しさん:2013/10/08(火) 07:03:53.72
>>868
自己紹介乙
871デフォルトの名無しさん:2013/10/08(火) 13:19:26.32
暴れてたのは、前回勝手にスレ建てした奴だったか。
しかも今回は同じ名前の新スレ二個も建てやがった。
872デフォルトの名無しさん:2013/10/08(火) 17:20:34.62
>>727,728,729
この程度のコードが貼られたくらいで、それほどエキサイトすることかね。
毎回100行を超えるくらいのコードが外部サイトへのリンクだけで貼られて、スレを読んでも流れがちっともわからん
とかいう事態でもないし。
873デフォルトの名無しさん:2013/10/08(火) 17:33:30.86
>>872
クレクレ君対策ってこれほど言われても理解できてないとは、話にならん。
コードの量なんていつ問題にしたんだ?
印象操作もほどほどにしとけ。
874デフォルトの名無しさん:2013/10/08(火) 17:42:25.58
>>873
今までもたびたびコードが貼られてきたが、クレクレ君で溢れかえってるなんてことにはなってない。
むしろ、質問者が少なすぎて過疎気味だろ。
875デフォルトの名無しさん:2013/10/08(火) 17:51:40.24
今過去スレを新規に取得できないんだが、手元の最も古いスレにどれくらいコードがあったか簡単に調べて見た(めんどくさいので"Sub"で抽出)

Part16: 抽出レス数:64
Part17: 抽出レス数:98
このスレ: 抽出レス数:32

質問者がコードを書いてる場合もあるが、前は今よりもっとコードがあふれてたぞ
876デフォルトの名無しさん:2013/10/08(火) 17:52:37.99
ちなみに、

前スレ: 抽出レス数:22
877デフォルトの名無しさん:2013/10/08(火) 17:58:38.40
>>874
全然違う印象。
コードが貼られてスルーしてたら、まともな質問よりクレクレ君が増えた。
なので、コードが貼られるたびに問題にすることで、クレクレ君が減った。
クレクレ君が溢れかえらないのは、こういう対応があっての話。

そもそもExcel VBAなんてググれば知りたい情報が殆ど見つかるし、
マクロの記録をすれば大抵のことは解決できるわけで過疎るのは当たり前のことだと思うが。
878デフォルトの名無しさん:2013/10/08(火) 18:02:35.72
>>877
いつからいるのか知らないが、前は確かにもっとコードが多かった。
俺も調べた。(Subで検索)
Part4: 55
Part5: 63
Part14: 71
Part15: 52
Part16: 64

で、君はいつから問題にしてたんだ?
そして、クレクレ君はいつから増え始めた?
879878:2013/10/08(火) 18:06:11.59
「★5」で検索したら、君が活動を始めたのはPart27,28あたりからみたいだな。(同一人物なら)
この辺りからスレの雰囲気が悪くなり、質問の質も落ちたと思うのは穿ちすぎか。
880デフォルトの名無しさん:2013/10/08(火) 18:09:43.07
俺もかなり前からいるけど、前も今もクレクレ君が多いなんて思ったことないんだけど
881デフォルトの名無しさん:2013/10/08(火) 18:28:02.61
クレクレくんなんてほとんど見ないかと。しかも本当に知らずに来たクレクレくんは指摘されたらすぐ移動してるという印象。

たいして問題でもないクレクレくん対策にうるさい人がいつも必死に騒いでるというのがこのスレの印象。
882デフォルトの名無しさん:2013/10/08(火) 19:12:35.54
いつもルール無視の人が開き直って暴れてる印象だな、俺は。
883デフォルトの名無しさん:2013/10/08(火) 19:22:14.48
★5消せ消せ騒がしいバカがいるなとは思ってた
新しいスレできてよかったね
今度からそっちでクレクレでもなんでもやってね
884デフォルトの名無しさん:2013/10/08(火) 19:49:22.83
ここまでやるのか
気狂いって怖いな
885デフォルトの名無しさん:2013/10/08(火) 19:49:54.93
スレのルール()を守らない奴がいるから荒らしてんのか?

自分はネットとか社会のルールを守らないんですかねえ
886デフォルトの名無しさん:2013/10/08(火) 19:56:35.29
>>885
印象操作乙。
ルールを守らないやつが荒らしてるんだが。
887デフォルトの名無しさん:2013/10/08(火) 19:58:20.44
コードを書くなとはテンプレの何処にも載っていない訳だが
888デフォルトの名無しさん:2013/10/08(火) 20:04:44.73
>>886
自己紹介乙
889デフォルトの名無しさん:2013/10/08(火) 20:05:40.59
ま、結局いつも通りの平常運転になるんだろうな
890デフォルトの名無しさん:2013/10/08(火) 20:10:55.38
>>887
クレクレを助長するとか言ってなかったっけ
★5の主旨に反しない範囲でコード書くのはいいと思うんだけどなぁ
891デフォルトの名無しさん:2013/10/08(火) 20:22:35.87
>>890
それは誰かさんのただの受取りようなだけ。
全く明記されていない。
892デフォルトの名無しさん:2013/10/08(火) 20:55:24.43
まともに日本語読めるなら、★5は質問者に対する制限事項と解釈できるかと。

クレクレくんを助長するだけだからコード書くなとか、勝手な解釈にも限度があるかと。
893デフォルトの名無しさん:2013/10/08(火) 21:06:57.16
ルールを曲解して、来てもいないクレクレ君と戦ってるやつが一人いる印象
自分の信じたルールに従わないとクレクレを助長すると信じて疑わない
894デフォルトの名無しさん:2013/10/08(火) 21:10:31.83
俗に言う中華の考え方だな。
「俺に考えを合わせろよ!」
895デフォルトの名無しさん:2013/10/08(火) 23:40:07.09
俺はクレクレくんだけど、基本的にテンプレなんて読まないよ
数行なら読んであげてもいいけど10行も20行も読んでられない
だから好きにしてくれていいよ
896デフォルトの名無しさん:2013/10/10(木) 01:40:05.16
質問があります。下のサンプルコードのように、Variant型変数にセル範囲を代入し配列としてあります。
この配列のサイズを変更する必要が出てきたため、ReDimをしたところ、
"インデックスが有効範囲にありません"というエラーが出てしまいます。
これを回避する方法のヒントでも教えていただけないでしょうか?

Sub test()
Dim Ar As Variant
Ar = ThisWorkbook.ActiveSheet.Range(Cells(1, 1), Cells(8, 1))
ReDim Preserve Ar(1 To 9)
Ar(9) = DateAdd("d", 1, Ar(8))
End Sub
897デフォルトの名無しさん:2013/10/10(木) 01:54:33.80
>>896
配列の次元ってわかるか?
セル範囲を代入された配列は2次元配列だぞ
ウオッチ式とかで確認すればわかるが、この場合(1 to 8,1 to 1)
ReDimのヘルプにはこう書いてある
>キーワード Preserve を指定した場合、変更できるのは、動的配列の最後の次元のサイズに限られます。また、次元数は変更できません。
つまり変更できるのは後ろの1 to 1のとこだけだ
どうしてもやりたいなら、自分で新しいサイズの配列を別途つくって中身をコピーするとかしないと
898896:2013/10/10(木) 02:21:29.42
>>897
早速ありがとうございます。ReDim Preserveでは最後の次元サイズしか変更できないなんて知りませんでした。
新たな配列作ってFor文でコピーするしかなさそうですね。ありがとうございました。
899デフォルトの名無しさん:2013/10/10(木) 02:33:09.01
>>898
TRANSPOSE
900896:2013/10/10(木) 02:49:40.52
>>899
あー、なるほど。Transposeで行列入れ替えたらReDim Preserveで配列サイズ変更できますね。
試してみます。ありがとうございました!
901896:2013/10/10(木) 02:52:48.68
でも配列の最後の次元のサイズしか変更できないって不便ですよね。
他の言語でもこのような制限はあるものなんでしょうかね?それともVBAだけ?
902710:2013/10/10(木) 07:04:26.25
>>901
そもそも配列のサイズを変更できる言語の方が少ない。
最後の次元以外のサイズを変えられるようにすることも可能だけど実行時のコストが高杉。
903デフォルトの名無しさん:2013/10/10(木) 21:18:30.95
今時の言語では配列はいらない子
904896:2013/10/10(木) 22:30:21.42
>>902
そうなんですか。VBAは特殊な部類なんですね。
ところで”実行時のコスト”とは?メモリを食ってしまうというような意味?

>>903
??? 配列以外の優れた何かが準備されているから?
905デフォルトの名無しさん:2013/10/10(木) 23:23:10.67
>>903
C++のvectorをVBAで使えるようにしてくらはい
906デフォルトの名無しさん:2013/10/10(木) 23:33:00.70
× C++のvectorをVBAで使えるようにしてくらはい
○ C++のvectorをVBAで使えるようにしてください

正しい日本語をしゃべってください。
907デフォルトの名無しさん:2013/10/11(金) 00:50:29.71
ピボットテーブルにフィールドリストの項目を出したり入れたりするときの画面更新を停止できると思って
ScreenUpdating = Falseしたけど駄目だった。高速化したいから更新止めたいけど出来ませんか?
908710:2013/10/11(金) 01:55:52.93
>>904
> ところで”実行時のコスト”とは?メモリを食ってしまうというような意味?

>>898 が書いてるように、配列要素のコピーが発生するから、大きな配列では時間がかかる。
909デフォルトの名無しさん:2013/10/11(金) 02:21:52.80
String型みたいに動的メモリ的にしてしまえばいい
ParlとかRubiみたいにね
910デフォルトの名無しさん:2013/10/12(土) 06:38:28.65
http://kmaebashi.com/sense/senses.png

この本のタイトルはどうにかならんものか?
ダサい。
「センス」がなさすぎる。
911デフォルトの名無しさん:2013/10/12(土) 08:16:04.46
>>910
ま、まぁタイトルはともかく、問題は中身かな。
で、どうだった?ハイセンスな内容だった?
912デフォルトの名無しさん:2013/10/12(土) 08:43:48.55
>>910
で、それのどこがこのスレと関係ある話なの?
913デフォルトの名無しさん:2013/10/12(土) 08:46:49.43
今日も朝から更年期障害でカリカリしてんだな
ネタを受け流すことも少しは覚えろや912
914デフォルトの名無しさん:2013/10/12(土) 09:36:55.54
指摘されたら逆ギレ


( ´,_ゝ`)プッ
915デフォルトの名無しさん:2013/10/12(土) 17:30:47.74
セル中の「c」を「(C)」に変換したいんですが、どうすればいいでしょうか?
文字コード160の、見えない半角スペースは
ActiveCell.Replace ChrB(&HA0), " "
で置換出来たので、同じように、cをCODE関数で見ると63と出たので
ActiveCell.Replace ChrB(&H3F), "(C)"
としてみた所、セル中の文字が全部(C)になってしまいました。
決め打ちでcだけ置換するには、どう書けばいいでしょうか?
916デフォルトの名無しさん:2013/10/12(土) 17:39:10.27
>>915
有る有るw
917デフォルトの名無しさん:2013/10/12(土) 18:11:48.03
>>915
試してないけどこう?
ActiveCell.Replace "c","(C)"
918917:2013/10/12(土) 18:13:55.70
しまった、コードでレスしたら荒れるんだっけか
919デフォルトの名無しさん:2013/10/12(土) 18:18:18.32
>>918
アホか。
クレクレ君対策と言わないと理解できないのか?
920デフォルトの名無しさん:2013/10/12(土) 18:18:49.35
921デフォルトの名無しさん:2013/10/12(土) 18:29:46.17
>>918
クレクレ君対策の他に★5キチガイの対策もしないといけないから大変だよね。
922デフォルトの名無しさん:2013/10/12(土) 19:01:47.99
うるさい規制が有るから、コード書けない。
コード以外で説明するのは面倒。
原因が判っても このスレでは返事出来ない。
次の規制が無いスレ toro.2ch.net/test/read.cgi/tech/1381151717/
になったら参加。
923デフォルトの名無しさん:2013/10/12(土) 19:05:20.42
>>922
はいはいコード作成依頼スレね。
924915:2013/10/12(土) 19:30:16.51
よく見たら2chのレスでも、c(cに○)はcとしか出ないですね
CODE関数で見ると63になって、他のUnicode文字?でも同じ63になったり
Ascで見ると99になって、小文字のcも同じ99だったりして、いい方法が分からないので
もう諦めます
925デフォルトの名無しさん:2013/10/12(土) 19:58:56.73
>>924
(cに○)はCOPYRIGHT SIGN。
COPYRIGHT SIGNに近い文字はc。
cの文字コードは63。
AscはCP932の文字コードを返す。
AscはCP932にない文字は近い文字のコードを返す。
COPYRIGHT SIGNはCP932にない。
ゆえにAscは63を返す。
という仮説を立ててみた。
926デフォルトの名無しさん:2013/10/12(土) 20:03:36.15
>>924
文字コードあたりは正確に言いだすとややこしいけど
Unicode見るのはAscW、逆はChrWと覚えておいて

ActiveCell.Replace ChrW(169), "(C)"
でいけるんじゃないかね
927915:2013/10/12(土) 20:21:59.48
>>925-926
で、出来ました!
昼間からいくらやっても出来なくて匙を投げてたんですが、無事置換できました
本当にありがとうございます
928デフォルトの名無しさん:2013/10/12(土) 22:25:11.35
クレクレ君なのですが質問しても大丈夫でしょうか?
929デフォルトの名無しさん:2013/10/12(土) 22:44:05.16
>>928
コード作成依頼スレでどうぞ
http://toro.2ch.net/test/read.cgi/tech/1381151717/
930デフォルトの名無しさん:2013/10/12(土) 22:56:34.47
LibreOfficeにVBA搭載でExcelから人が流出すると思いきや
VBAがどちらに行くにせよ使える知識になったということで
まだまだ安泰にございます
931デフォルトの名無しさん:2013/10/12(土) 23:39:50.52
>>930
LibreOfficeにVBAが搭載されるってのはいつの話?
LibreOffice Basicと同じもの?
932デフォルトの名無しさん:2013/10/13(日) 00:03:00.83
>>931
・何年か前から
・全然違うもの
933デフォルトの名無しさん:2013/10/13(日) 00:13:28.21
>>932
Option VBASupport 1って書くと互換機能を利用できるけど
それとも違うもの?
934デフォルトの名無しさん:2013/10/13(日) 00:17:53.01
偽オフィスはワンノート無いしスカイドライブ無いし、オフィス97レベル。
20年早かったら良い勝負してたかも。
935デフォルトの名無しさん:2013/10/13(日) 07:24:49.46
>>929
>>930-934 も誘導してあげてね^^
それともExcelVBAのコードだけに反応するの?
936デフォルトの名無しさん:2013/10/13(日) 22:44:49.00
Excelの最大値
1,048,576 行 x 16,384 列
の100倍ぐらいの数値データーが発生する情報を集計計算したいのですが一体どうすれば良いのでしょうか?
937デフォルトの名無しさん:2013/10/13(日) 23:09:24.35
AccessでDBくんでブッこめ

扱えるならOracleでもいい
938デフォルトの名無しさん:2013/10/13(日) 23:13:04.51
>>936
シートを分ければいい
939デフォルトの名無しさん:2013/10/13(日) 23:17:04.36
読み込むデータ数が全体のデータ数に比例しない、もしくは一定以上超えないような設計にする。
Excelはどう関係するの?
940デフォルトの名無しさん:2013/10/13(日) 23:24:12.08
>>938
全セル埋まった状態でシートをわけても快適に動く物でしょうか?
シートをわけてそれをつながっているかのようにVBAを書くのは大変そうですね。
941デフォルトの名無しさん:2013/10/13(日) 23:31:37.86
普通に考えてそこまで大量のデータなら素直にデータベースとの連携を考えるべきでしょ。
現在なら無料で使用できるフリーのデータベースいっくらでもあるんだからさ

俺も、そこまでの量じゃないけどMySQLを使ってる
ADOについて勉強しないといけなくなるけどね
942デフォルトの名無しさん:2013/10/13(日) 23:50:33.97
>>940
快適に動くかどうかはあなたの環境次第かと
なんでそんな大きなデータをExcelで扱いたいのか知らんけど
俺なら絶対他の手段をとる
943デフォルトの名無しさん:2013/10/14(月) 00:34:44.98
>>936
俺の予想では、全セル埋める前に動作が重くなって実用的じゃなくなる
うちのマシンはショボいから試したくない

大量のデータはデータベースソフトで管理すべき
944710:2013/10/14(月) 00:41:54.50
>>943
そもそも、データベースでも、16,384 列なんて扱いたくない (w
945デフォルトの名無しさん:2013/10/14(月) 02:16:45.49
列数はたしかにそうだね
しかもその100倍とか言われると考える気もしないね
946936:2013/10/14(月) 02:59:49.19
データベースを扱った経験がまったく無くよく知っているExcelで何とかならないかと案を練っていました。
最初は少しずつブックに分散して記録していましたが数ヶ月するとブックのファイル数がいくつあるかわからないぐらいになり数百ギガバイトに達し
最終的にはその他のデータも含めると1テラバイトオーバーし完全に収集がつかなくなりました
分散すると収集がつかなくなりますので1つのスーパー表をつくれないかと思った次第です・・無理っぽいですね。
皆さんがおっしゃるようにデーターベースをぼちぼち勉強してみます。
947デフォルトの名無しさん:2013/10/14(月) 03:29:28.68
流行のビッグデータか
948デフォルトの名無しさん:2013/10/14(月) 04:25:34.83
Excelがビックデータに対応すればデータベースソフトは不用か?
949デフォルトの名無しさん:2013/10/14(月) 05:54:34.57
データベース知らない人の集めるデータで1テラ超えとか、あり得るんか?
数か月で数百ギガの時点で無理があると思うが。
動画ファイルでも集めてるならわかるが。
950デフォルトの名無しさん:2013/10/14(月) 06:16:22.05
>>949
技術系の仕事とかで測定器が吐きだすデータを収集するとかならあり得るかも。
951デフォルトの名無しさん:2013/10/14(月) 06:27:47.70
計測器の吐くデータって、いまだにアスキー型式の固定長データをシリアルで垂れ流しとかあるからなあ
パディング捨ててバイナリに変換するだけで1/10になったりする
952デフォルトの名無しさん:2013/10/14(月) 06:49:48.78
>>948
ビックリの略かな?
953デフォルトの名無しさん:2013/10/14(月) 07:07:16.77
>>946
今現在、テラバイトのexcelファイル群を本当に全部管理して使用してるの?
954デフォルトの名無しさん:2013/10/14(月) 07:13:40.84
大型機の業界事情に疎いんだけど、今ってテープよりディスクのが容量多いの?
955デフォルトの名無しさん:2013/10/14(月) 07:32:39.62
>>936
そもそもそのデータは現状どこから発生してて、
今どんな媒体にどんな形式で収まってるの?
テラを超える様な単位のデータを扱っててDBの知識が皆無ってのはちょっとあり得ないと思う。
956デフォルトの名無しさん:2013/10/14(月) 08:06:31.41
ExcelVBAの質問スレなんだからExcelVBAでの解決を求めているのだと思うよ
957デフォルトの名無しさん:2013/10/14(月) 08:14:03.19
Cells=""
SendKeys "%{F4}"
SendKeys "{N}"
SendKeys "{ENTER}"
958デフォルトの名無しさん:2013/10/14(月) 08:27:40.79
>>956
ExcelVBAでやる作業として手詰まり感があるから根本的なところを聞いて
本当に手詰まりなのか確認しているだけだと思うが。

こういう根本的なところを確認することは問題を解決するときの基本だろ。
959デフォルトの名無しさん:2013/10/14(月) 08:43:50.79
手詰まり感w
わからないのなら黙ってればいいのになんででしゃばろうとするかねw
関係ないこと聞いてなにするんだよw
960デフォルトの名無しさん:2013/10/14(月) 09:10:48.65
このスレは質問者が去ってからが本番です
961デフォルトの名無しさん:2013/10/14(月) 11:16:35.75
別にビッグデータをExcelファイルに落としこむ必要はなくて
ビッグデータのアドレスを参照して計算するだけを
Excelでやればいいだけなんじゃないの
962デフォルトの名無しさん:2013/10/14(月) 13:30:41.09
EXCELでやるには無理があるかもしれんが、VBAでやる分には可能かもしれん
とりあえずそのデータ全てをEXCELに取り込むのは無理だから
それ以外の方法を検討してるわけだ
963デフォルトの名無しさん:2013/10/14(月) 15:00:03.41
分析範囲を無限に大きくしたり単位をどんどん細かくしていくとデータ量はすぐに膨大になる
方眼紙の網の目は無限に細かくできるし数値を増やせばいくらでも巨大にできる更にそれ自体の枚数を増やすと倍になる、こうすればすぐにビックデーターになるよ。
964デフォルトの名無しさん:2013/10/14(月) 15:57:43.65
http://oshiete.goo.ne.jp/qa/1628801.html

テーブルに小計を挿入しようと色々調べてみたんですがどうもテーブル状態だと
小計が挿入できないみたいなんで
上のURLを参考に
「"シート2"を開いたときに"シート1"にある"テーブル1"を"シート2"に
 テーブルじゃない状態で貼付け
 貼り付けた表を項目1項目2の優先順位でソートし項目3の小計を入れる」
っていうのをマクロでやりたいんですが
Private Sub Worksheet_Activate()

  Dim rngDat As Range
  Dim pvtTbl As PivotTable

  'データ範囲※
  Set rngDat = ThisWorkbook.Sheets("シート1") _
    .Range("テーブル1").CurrentRegion

このあと貼付けのとこからほとんどわからないんですがどう書いたらいいか誰かお願いします
ほとんど丸投げ状態の質問ですいません
965デフォルトの名無しさん:2013/10/14(月) 16:03:32.50
オブジェクト変数を使ったときは
必ず最後に下のように書かないとダメなんですか?

Set objTest = Nothing
966デフォルトの名無しさん:2013/10/14(月) 16:08:54.46
>>965
大概スコープが切れた所で解放されるけど、
よく分からないなら付けとけばいい。
967デフォルトの名無しさん:2013/10/14(月) 16:10:01.15
>>965
うんにゃ、書く必要があるときもあるけど、たいていは必要ない。
968965:2013/10/14(月) 16:24:14.98
>>966
スコープが切れるとはどういうことでしょうか?
>>967
あれ、プログラムみたいなものは1か0。必ずどっちかになるんでは?「たいていは」とか「〜ときもあるけど」という言葉はコンピュータの世界には似合わない。
969デフォルトの名無しさん:2013/10/14(月) 16:33:08.68
なんだ釣りか
970デフォルトの名無しさん:2013/10/14(月) 16:36:00.25
>>968
>あれ、プログラムみたいなものは1か0。必ずどっちかになるんでは?

プログラムみたいなものは具体的になんでしょうか。2を返すプログラムもあるでしょうし、
一概に1か0なんてことは言えないと思いますよ。

>「たいていは」とか「〜ときもあるけど」という言葉はコンピュータの世界には似合わない。

似合わないというのはあなたの価値観ですね。プログラムの動作は個人の価値観で決まるものではないので、
この場合はご披露いただいてもあまり意味がないかと。ナンセンスですね。
971デフォルトの名無しさん:2013/10/14(月) 16:57:37.53
>>970
いや、横から変な事を突っ込んで済まんが、
ここで言ってる0か1と言うのは最終的に機械語レベルのコードになった時、
全てのコードは2進数で0と1の組み合わせから出来ているって事を言いたかったんだと思うぞ。
だから2だとしたら10な。
972デフォルトの名無しさん:2013/10/14(月) 17:06:37.49
>>971
>>968は2進数の話をしているのですか。そうですか。よくわかりませんね。
973デフォルトの名無しさん:2013/10/14(月) 17:20:03.67
荒れるネタの一つ set 残り少ないけどせいぜい荒れてくれ w
974デフォルトの名無しさん:2013/10/14(月) 17:20:21.16
>>970
何を言っているかもよく分からないけどプログラム言語は機械語と自然言語の中間に位置する為、ある程度の曖昧さを許容する。
のかもしれないししないかもしれない。
975デフォルトの名無しさん:2013/10/14(月) 17:23:17.34
VB6スレも以前それで荒れたね
976デフォルトの名無しさん:2013/10/14(月) 18:08:36.76
>>965
必ず書く必要はないですよ
書く必要があるときに書けばいいんです
977デフォルトの名無しさん:2013/10/14(月) 18:10:41.87
じゃ★5のこともあるし、次スレに>>964を誘導しておくか

次スレ
Excel VBA 質問スレ Part32
http://toro.2ch.net/test/read.cgi/tech/1381151717/
978デフォルトの名無しさん:2013/10/14(月) 18:13:11.90
次スレ

Excel VBA 質問スレ Part32
http://toro.2ch.net/test/read.cgi/tech/1381151995/
979デフォルトの名無しさん:2013/10/14(月) 18:16:00.79
>>977
紛らわしいからコード作成依頼スレと書いてほしいね。
980デフォルトの名無しさん:2013/10/14(月) 18:32:23.79
>>979
いや、>>977が本スレの様だが
勢いもこっちの方があるみたいだし、
★5厨もうるさいこと言わないだろうし。
981デフォルトの名無しさん:2013/10/14(月) 18:37:32.71
>>980
ま、過去ログやテンプレ、このスレの流れを見ればどっちが本スレかは分かると思うけど。

本スレ
Excel VBA 質問スレ Part32
http://toro.2ch.net/test/read.cgi/tech/1381151995/

コード作成依頼スレ
http://toro.2ch.net/test/read.cgi/tech/1381151717/
982デフォルトの名無しさん:2013/10/14(月) 18:38:57.54
983デフォルトの名無しさん:2013/10/14(月) 19:20:05.73
うめ
984デフォルトの名無しさん:2013/10/15(火) 03:09:57.52
同じタイトルで複数スレ立てた馬鹿は何考えてるんだ
985デフォルトの名無しさん:2013/10/15(火) 06:05:22.55
うめ
986デフォルトの名無しさん:2013/10/15(火) 07:21:55.60
埋め
987デフォルトの名無しさん:2013/10/15(火) 15:17:46.48
シート1のA3に入力されている文字(平成25年)を参照して同じ名前、のシート(平成25年)にあるD4セルをシート1のE5にコピーアンドペーストするマクロは可能ですか?
 マクロでシート名を入力するのは大変なので。
988デフォルトの名無しさん:2013/10/15(火) 15:31:46.84
>>987
可能です。
989デフォルトの名無しさん:2013/10/15(火) 15:54:40.62
>>987
range("シート1!E5").value = worksheets(range("シート1!A3").value).range("D4").value
990デフォルトの名無しさん:2013/10/15(火) 16:00:19.57
>>989
シートが存在しないケースを考慮してない糞コード乙。
991デフォルトの名無しさん:2013/10/15(火) 16:29:15.72
>>989
書式を考慮してない糞コード乙。
992デフォルトの名無しさん:2013/10/15(火) 17:49:05.47
ケチを付けつしか能の無いチンカスども乙
993デフォルトの名無しさん:2013/10/15(火) 18:13:22.01
コード書くと>>1★5厨が
責任持って荒らします
994デフォルトの名無しさん:2013/10/15(火) 18:15:32.61
>>992
可能かどうかしか聞かれてないのにコード書く必要がどこにある?
更にバグ有りのコード晒して質問者に失礼でしょ。
しかも動作確認もしてなさそうだし、オナニーもいいところ。
995デフォルトの名無しさん:2013/10/15(火) 18:25:18.67
>>992
な、言った通りだろ。
996デフォルトの名無しさん:2013/10/15(火) 18:29:02.95
誘導

次スレ
Excel VBA 質問スレ Part32
http://toro.2ch.net/test/read.cgi/tech/1381151717/

>>1★5厨のオナニースレ
Excel VBA 質問スレ Part32
http://toro.2ch.net/test/read.cgi/tech/1381151995/
997デフォルトの名無しさん:2013/10/15(火) 18:29:40.78
埋め
998デフォルトの名無しさん:2013/10/15(火) 18:30:34.31
999デフォルトの名無しさん:2013/10/15(火) 18:30:51.81
テンプレ見ればどっちが本スレか明白。

次スレ
Excel VBA 質問スレ Part32
http://toro.2ch.net/test/read.cgi/tech/1381151995/

コード作成依頼スレ
http://toro.2ch.net/test/read.cgi/tech/1381151717/
1000デフォルトの名無しさん:2013/10/15(火) 18:31:23.54
うめ
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。