Excel総合相談所 91

このエントリーをはてなブックマークに追加
1名無しさん@そうだ選挙にいこう
▼━ 質問のしかた ━━━━━━━━━━━━━━━━━━━━
★1 質問するときは環境や条件はきちんと書いてね。情報後出しはダメ。
★2 要望は具体例や図を使って明確かつ具体的に。
★3 質問前に>>2-20あたりの注意書きやQ&Aを必ず読むこと。
★4 質問テンプレ(雛形)は必須じゃないけど、
   OSやExcelのバージョン、VBAの可否など(下記テンプレ1〜4の情報)は必須情報。

▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━
【1 OSの種類         .】 Windows**
【2 Excelのバージョン   】 Excel**
【3 VBAが使えるか    .】 はい・いいえ
【4 VBAでの回答の可否】 可・否
【5 検索キーワード     】 Googleやヘルプでの検索キーワード

※【4】は、VBAはわからないけどコード書いてくれるならVBAでもいいって場合は「可」
  VBAを使うのは避けたいって場合は「否」にしましょう。丸投げする場合は、必要に応じてブックをアップすること。

※【5】は、あなたがGoogleやヘルプで検索した際に使ったキーワードを書いてください。
  まだ検索してないなら、質問の前にGoogleやヘルプで検索してみてください。
  ttp://www.google.co.jp/

前スレ
Excel総合相談所 90
http://pc11.2ch.net/test/read.cgi/bsoft/1266119722/
2複乳:2010/04/06(火) 17:46:22
>>994
マクロの記録、と前言わなかったっけ
やり方はテキトーにぐぐれ
後はVBAスレがあるからそっちへ行け
ttp://pc12.2ch.net/test/read.cgi/tech/1262748898/
本が欲しいなら何でもいいから一冊買えばいい
「初心者」または「入門」と名が付く奴で一番安いヤツかっとけ
バージョンは不問

あとはいきなり命令を記述できるわけではなく
プログラムの大まかな流れを知らないとプログラムは記述できない
VBはVBというソフト、VBAはエクセル等についてくるVB劣化版。
VBAはVBAと言った方がいい。VBの回答だとVBAに対応していない場合がある
>>997
送ったっけ?

3名無しさん@そうだ選挙にいこう:2010/04/06(火) 19:41:20
>>2
世の中には掲示板とメールの区別がついてなくて、
「掲示板で教える」ことを「メールで送る」って言う人がいるんだよ。
4名無しさん@そうだ選挙にいこう:2010/04/06(火) 19:42:46
jl
5複乳:2010/04/06(火) 19:45:18
そうなんですか、勉強になります・・
6名無しさん@そうだ選挙にいこう:2010/04/06(火) 19:47:33
関連スレ
VBAの質問はこちらで

Excel VBA 質問スレ Part14
http://pc12.2ch.net/test/read.cgi/tech/1262748898/
7名無しさん@そうだ選挙にいこう:2010/04/06(火) 21:41:08
>>3
> 「掲示板で教える」ことを「メールで送る」って言う人がいるんだよ。
そんなやつ初めて聞いたぞwwwww
8名無しさん@そうだ選挙にいこう:2010/04/06(火) 21:48:01
>>6
ここは総合だから、VBAはまずここで(´・ω・`)
9名無しさん@そうだ選挙にいこう:2010/04/07(水) 03:52:54
>>7
誰にでも初めてってのはあるもんだ。
カカクコムの口コミとか教えてgooとか見てるといっぱいいるぞ。
10名無しさん@そうだ選挙にいこう:2010/04/07(水) 12:15:23
>あとはいきなり命令を記述できるわけではなく
>プログラムの大まかな流れを知らないとプログラムは記述できない
そのあたりはだいたい解っています
123のマクロなら嫌になるほど書いていますから
VBAの言語のマニュアルが欲しいだけなのです
それが無ければ始まらないしそれがあれば後はどうにでもなるでしょうから
ところがこれが無い
市販の本などというのは著者が教えたいことは書いてあってもこちらが知りたいことは書いてないもので不便極まりないです
Excelに入っているVBAを作ったのはマイクロソフトですからそこのマニュアルが有ってしかすべきなのにおかしいことです
マイクロソフトは自分の所ではマニュアルは販売していないと言い張って聞きません
それではExcelを買えばその中にヘルプという形で当然マニュアルが有るだろうと思っていたのですがこれが無い
私にはこんなことは異常に見えますが皆さん納得しているんですか?
いずれにせよお世話になりましたVBAスレに行くことにします
11名無しさん@そうだ選挙にいこう:2010/04/07(水) 13:06:33
>>10
ヘルプにはVBAの事も当然入ってる。とても読みにくいけどね。
12名無しさん@そうだ選挙にいこう:2010/04/07(水) 13:40:42
>>11
見にくくてもいいのです
有りさえすれば
ところが無いのです
今までの状況は、
1 エクセル2002のシート全体のセルの背景色と文字の色を変えたい
2 しかしそれは2003以降で出来ることで2002では出来ない
3 ただしVBAマクロを使えば2002でも出来る
とここまで教わってからVBAの言語マニュアルを手に入れるためOfficeXP2002を手に入れてみましたがそのVBAエディターのヘルプに「Worksheet_SelectionChange」やそれらしい言葉を入れても何も出てこないのです
マイクロソフトにマニュアルが別売で有れば買うからと聞いても無いという返事
じゃあどうすれば手に入るのかと聞いてもそういことは教えられないというあきれた返事しか帰って来ません
困ってしまっています
「Worksheet_SelectionChange」の説明がエクセルのVBAエディターのヘルプに本当に有るのですか?
13名無しさん@そうだ選挙にいこう:2010/04/07(水) 14:24:17
Worksheet(_)SelectionChangeじゃなくて
Worksheet(.←ドット)SelectionChangeでも出てこない?
あるいは SelectionChange だけで調べてみた?
14名無しさん@そうだ選挙にいこう:2010/04/07(水) 15:02:14
>>12

頭悪そうw
15名無しさん@そうだ選挙にいこう:2010/04/07(水) 15:26:14
「SelectionChange」で出てきました!
ありがとうございます
しかし肝心のシート全体の背景の色を変えるというようなことがこれで出来るのでしょうか
出てくるのは下記のみです
-------------------------
SelectionChange イベント
関連項目 対象 使用例 アプリケーション情報
ワークシートで選択範囲を変更したときに発生します。
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Target 新しい選択範囲を指定します。

使用例
次の使用例は、選択範囲がウィンドウの左上隅になるまで、ブックのウィンドウをスクロールします。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With ActiveWindow
.ScrollRow = Target.Row
.ScrollColumn = Target.Column
End With
End Sub
-------------------------
16名無しさん@そうだ選挙にいこう:2010/04/07(水) 15:29:21
>>14
知識がなさそうw
17名無しさん@そうだ選挙にいこう:2010/04/07(水) 16:07:10
XPでexcel2003を使用している者です。
最新の"2007 microsoft office system 互換機能パック"を導入済みです。

お客様がexcel2007を導入しまして、2007で編集されたファイルを頂き、
自分の環境(2003)で開こうとしますと、
"セルの書式が多すぎるため、書式を追加できません"と表示され、深刻なダメージを受けて
まともに開くことができません。

お客様の手を煩わせる事なく、これを回避する方法はありますでしょうか?

2003でブックの書式数に制限があることは知っているため、原因そのものはわかります。、
最終手段は2007を導入することだと思いますが、それ以外に解決法があればそれを試したいです。

宜しくお願いします。m(_ _)m
18名無しさん@そうだ選挙にいこう:2010/04/07(水) 16:42:31
>>17
OOoを入れてみるという手もあるが、ちゃんと開ける保証はない。
一番確実なのは、やっぱり2007を入れることだろう。
マイクロソフトのホームページから体験版が無料で落とせるので、使いたいのが今だけなら
そちらをおすすめする。
この先もずっとそのお客さんと付き合っていくなら素直に購入。
19複乳:2010/04/07(水) 17:07:44
>>17
オフィス ビューワー
でぐぐれば開くためのソフトが色々見つかりますが・・
そんなに複雑怪奇なシートだと2007で試すのが良さそう
2017:2010/04/07(水) 17:43:12
>>18-19さん
OOoを試してみましたところ、無事に開くことができました!

今後編集してお客様とやり取りする機会があることを想定しますと、
最終的には2007導入という結論にはなると思いますが
現在はとりあえず参照できれば充分ですので自分的には解決です。


親切に回答して頂き、ありがとうございました。
21名無しさん@そうだ選挙にいこう:2010/04/07(水) 21:42:59
そう言えば
OOo3.x系のCalcとExcelではマクロ使ってないなら互換性は完璧といって良いレベルだったな。
WriterとWordだったらやばい事になってたぞw

22名無しさん@そうだ選挙にいこう:2010/04/08(木) 00:37:58
>15
得意なロータス123で
利用者がセルの背景色や文字のフォントをいじった。
けどそれを、背景赤で文字青に無理矢理変更する。


この処理のコードは書ける?
書いてみてよ。
ロータス製品からMSへの移行はパッケージソフトにもなってるぐらい単純だよ
ロータスやめてMSに切り替える企業の移行作業は8割ぐらいは元ロータスの技術者。
MS->ロータスは難しくてもロータス->-MSは簡単なはずだよ
23名無しさん@そうだ選挙にいこう:2010/04/08(木) 00:46:43
>>22
そろそろVBAスレでやってほしいんで放置でお願いします
24名無しさん@そうだ選挙にいこう:2010/04/08(木) 09:30:05
>>22
なに絡んでいるんだ? このバカは
>この処理のコードは書ける?
おまえに対してそれをしてみる必要性がどこに有るというんだ?
説明できるか? このバカ
25名無しさん@そうだ選挙にいこう:2010/04/08(木) 09:31:04
>>23
放置したいならお前も無駄レス付けないで黙っていろ
このバカ
26名無しさん@そうだ選挙にいこう:2010/04/08(木) 10:24:31
>>15
イベントってのはマクロをスタートする方法のこと
そのマクロはなんでもいい
色を変えるマクロは自分で作るんだよ
27名無しさん@そうだ選挙にいこう:2010/04/08(木) 12:50:10
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 エクセル メール アドオン 送信 添付 アウトルック以外 becky …など

エクセルやワードで編集中のシートやブックを直接メール送信する機能がありますよね
これと同じ様な事をアウトルックエキスプレスを使わないで出来る設定やアドオンなどは
ありませんでしょうか?

具体的にはbeckyを使っており、ボタン一発でブックを仮保存して自動的にメーラーに送るみたいな
機能があれば十分です。
28名無しさん@そうだ選挙にいこう:2010/04/08(木) 14:12:59
>>26
>イベントってのはマクロをスタートする方法のこと
わかりました、ありがとうございました
>色を変えるマクロは自分で作るんだよ
わかりました
それでそのマクロ命令はいったいどういうものなのですか?
私の質問は元々それだった訳ですが
ワークシート全体の背景色をセル単独(またはその集合)の背景色の変更としてではなく変えるマクロとはいったいどういうものなのでしょうか
29名無しさん@そうだ選挙にいこう:2010/04/08(木) 14:14:44
>>26
このスレが適当でなければVBAの質問スレで続きをお願いします
30名無しさん@そうだ選挙にいこう:2010/04/08(木) 17:51:37
excelシートに行を365個、列をだいたいの平均寿命の80個、罫線で表をつくり、
ctrlキーとマウスホイールで表を縮小すると、
驚くことに、1個1個のセルがはっきり見えるんです。

つまり人間が生きていくうえで、1日も無駄にはできない、そう思うようになりました。
31名無しさん@そうだ選挙にいこう:2010/04/08(木) 18:00:12
>>30
1時間=1ドットとすると、80年はだいたい1024x768ドット
32名無しさん@そうだ選挙にいこう:2010/04/08(木) 18:16:32
>>30 ワロタ
33複乳:2010/04/08(木) 20:44:09
>>30
試しに一つのセルを黄色で塗りつぶしてみた
これだけだとほとんどわからないぐらいの変化だが、
一行あればクッキリと見え、数行染めればはっきりと全体が変わる
成長ってこういう日々の積み重ねなんだな、と思いました。
34名無しさん@そうだ選挙にいこう:2010/04/08(木) 20:47:28
100年分の1枚カレンダーを見て同じ事を思った
35名無しさん@そうだ選挙にいこう:2010/04/08(木) 20:59:29
【1 OSの種類         .】 Windows vista
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 マクロシート 参照

久しぶりに
図形にマクロの登録をしようとしているのですが、次のようなのは初めてです。

「マクロシートに対する参照を指定してください」との指示が出てくるのですか
意味がわからなく、どう対処したらいいのか教えてください。
36複乳:2010/04/08(木) 21:21:18
>>35
基本、エラーはエラーメッセージを一文字も変えずに検索
3735:2010/04/08(木) 22:10:00
何となくですが、
「マクロシートに対する参照を指定してください」との指示はexcel4.0マクロの
関係のようです。

excel4.0マクロがexcel2007から復活しているけれど、excel2003でvista機で出て
くるのは想定外でした。
結局、
「モジュール名 半角スペース マクロ名」で登録するとうまく行きました。
xp機のときは、マクロ名だけでマクロの認識をしていたものが、vista機では
モジュール名まで要求するとの結論になりました。

もっと早くこれがわかっていたら、・・・
全自動化したxp機でのマクロがvista機では試行錯誤してもうまく行かず半自動化
に変えて乗り切った???原因がわかったようです orz orz

試行 + 思考
では。
38名無しさん@そうだ選挙にいこう:2010/04/08(木) 22:57:40
>>34
そんなカレンダーどこに売ってるんですか?
39名無しさん@そうだ選挙にいこう:2010/04/08(木) 23:21:52
▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━
【1 OSの種類         .】 WindowsXP SP3
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 日付 シリアル 並び替え 定義

お願いいたします。

日付の入力に関してなのですが、A列にH20/1(H20.1) という形で、
各行を入力して、それをシリアル値に変換して並び替えに使いたいのですが、
可能でしょうか?
H20/1/1(H20.1.1)まで入力するとシリアル値として反応してくれるのですが、
H20/1(H20.1)でH20/1/1として認識してシリアル値を取得する方法がありましたら
ご教授ください。S63/1等、年数・月数の入力でシリアル値を取り出せますでしょうか?
日の指定は特にないです。
(ユーザ定義でH20/1/1と入力してH20/1としての表示はできたのですが、
入力の際にH20/1として入力するとシリアル値として反応してくれませんでした)
40名無しさん@そうだ選挙にいこう:2010/04/08(木) 23:41:06
>>39
書式でなんとかするのは無理っぽいんで、文字列から数式で年と日を取り出してシリアル値に変換するしかないね
41名無しさん@そうだ選挙にいこう:2010/04/09(金) 00:04:10
>>40ありがとうございます。。
別の列でA列に/1を追加して、そこからシリアル値を取り出せました。
42名無しさん@そうだ選挙にいこう:2010/04/09(金) 00:17:49
「100年分の1枚カレンダー」って詳しく教えていただけんだろうか?
43名無しさん@そうだ選挙にいこう:2010/04/09(金) 00:23:26
100年カレンダー
http://plaza.harmonix.ne.jp/~k-miwa/bonnou/100nen.html

このカレンダーを買った人のなかから次々と自殺者が出たこらしい
44名無しさん@そうだ選挙にいこう:2010/04/09(金) 00:28:31
100年カレンダーが買えないから自分でExcelで作りたいのですが、
どうやってつくりますか?
だれか作ってUPしてくれますか?

自分的に必要な機能は、
・A4の1枚であること。
・最初の年(例えば1988年)を指定すると、その年の1988年1月1日から2088年12月31日までが自動でセルに入力されること。
・その入力される数字形式は、ちっちゃくなっても見やすくするため1つのセルに日だけ(月の最初の1日だけは4/1みたいにする。年の初めはどこかに西暦年号を入れる)。
4544:2010/04/09(金) 00:29:18
複乳さん、いつも見てます。尊敬しています。こんなのチョチョイノチョイ(死語)でしょ?作ってくれませんか?あるいは、どなたか・・・。
46複乳:2010/04/09(金) 00:38:02
>>44
別に作るのはいいんだけど、いまいち出力形態が分からない
1行目に1988ねん1/1-12/31
にぎょうめに1989ねん1/1-
なのか
それで日付だけなのか、付きもつけるのか、なんなのか。サンプルでもあればいいんだけど
47複乳:2010/04/09(金) 00:40:34
あとA4の一枚ってのが曖昧すぎてねー
>>30みたいにフォントサイズを1にしたり縮小倍率を1%に設定したりすれば、
1ドットだけどこれは8を表してる、とか言えるわけだし
4844:2010/04/09(金) 00:41:57
しかしこれぐらいはスキルを身につけて自分でつくれるようになりたいな。
みんなどうやってつくる?

自分が思いつくのはこれくらい
・A1を入力用「年代」セルとする。つまりここを変更するだけで、その人用の人生カレンダーが一瞬でできる。
・B2がスタート。つまり1988年1月1日。そして右側にこの年の365日分の日を。
・下にいくにつれて年を1つ増やす。
・条件付書式で、土日は文字に色を塗る。

と思ったけど、さっそく問題が出た。Excelは列が255までなので、1年分の365が入りきらない。
49複乳:2010/04/09(金) 00:45:36
>>48
一つ目はinputboxにするつもりだったな
二つ目は気づかなかった・・
書式設定で縦書きにしてA366を1/1、a365を1/2・・かな・・
それで列が右に行くごとに一年・・・
やりたくないなぁ。
5044:2010/04/09(金) 00:46:06
>>46-47
こんにちは。
それはおまかせしますよ。
作者のかたがつくりやすい方法で。

本当はすべてのセルに 4/9 のように月も日もつけたいけど、ちっちゃいセルになることが予想されるので、1日以外は日だけがいいような気がします。
もしA4の1枚がちっちゃすぎれば、しかたなく4枚で印刷してセロテープでくっつけで、全体として100年分になってる、というような印刷のしかたになるかな。
51名無しさん@そうだ選挙にいこう:2010/04/09(金) 01:01:25
とりあえず、列を1〜約180(半年分)、行を1〜200(100年分)にして、A4の横で印刷すれば、
1つのセルが少しだけ横に細長い、いい感じの見やすい長方形になることがわかった。
52複乳:2010/04/09(金) 01:22:54
>>50
ttp://www1.axfc.net/uploader/Sc/so/101473.zip
まぁ、大体分かるだろ。右へテキトーにオートフィル。
マクロは1日を1/1、みたいに書式設定を帰てるだけだから
ちなみに12/31は0扱いで、書式設定で0を表示しないようにしている

やっつけ仕事なら任せろ!

あと、A4に加工するのはこれを加工した後でいいと思ったのでさわっていない
53名無しさん@そうだ選挙にいこう:2010/04/09(金) 01:54:57
>>52
おっと、早い。ありがとうございます。

でもさっそくバグらしいものが・・・・
別の年代を指定すると、月の最初が「7/1」のはずが、「1」「7/2」となることがあります。
これはなおりますか?
54複乳:2010/04/09(金) 02:03:39
別の年代って何年?
あとMacro1 Macro2は無視してくれ。消してもいい
sheet1.sexってマクロだけだな。使う気でイタの
55名無しさん@そうだ選挙にいこう:2010/04/09(金) 16:29:38
>>29 です
VBAの質問スレの方でも返事は頂けなかったようですがそれは当然のことでした
なぜならVBAなら出来るという解決方法など最初から無かったからです
実はサンプルに手に入れたExcelの2002でしてみると2003以降と同じようにシート全体を選択しセルの色や文字の色を手動で変えれば固定できました
もちろんエクセルでの手動と同じ事をVBAですれば出来るという事にはなりますが2002では手動では出来ないという前提でしたからVBAでのみ出来る方法が有るということになります
ゆえにそのVBAでのみ出来るという解決方法を今までさんざん苦労をして探していましたが結局は有りませんでした
有りもしないものを有ると思い込んで言っていた複乳氏の無知な知ったかぶりに振り回された数日だったようです
56複乳:2010/04/09(金) 16:40:08
ワロタ
57名無しさん@そうだ選挙にいこう:2010/04/09(金) 16:44:42
i7爆速まで読んだ
58名無しさん@そうだ選挙にいこう:2010/04/09(金) 17:14:48
>>56
>>55 だが
ショボイ知識しか無いくせに回答者面してんじゃねえぞ
お前は僅かなチップ欲しさに知りもしない道を教えるローマの浮浪者か
根性がさもしすぎるな
59名無しさん@そうだ選挙にいこう:2010/04/09(金) 17:25:47
だいたいExcel本体には無い動きをさせるVBAコマンドが有ると思えるお前の頭はおかしい
こちらは有るというから有るんだろうと思っていたが買いかぶりだった
バカが知ったかぶりをしていたというのはいかにもネットならではの落ちだったな
60名無しさん@そうだ選挙にいこう:2010/04/09(金) 20:45:35
とりあえず、こういう方法もある
http://pc12.2ch.net/test/read.cgi/tech/1262748898/905
ちょっと副作用があるが
61名無しさん@そうだ選挙にいこう:2010/04/09(金) 21:01:21
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002

F列にあるデータのうち、"-"を含まないものがあったらE列とF列を
マクロで削除(上方向へシフト)するには、どう書けばいいでしょうか?
If文がダメっぽいです・・

F = Range("F65536").End(xlUp).Row
 For i = 4 To F
  If Cells(i, 6) = "<>*-*" Then
   Range(Cells(i, 5), Cells(i, 6)).Delete Shift:=xlUp
  End If
Next

A-123
A123
AB-12
ABC-1

というデータがあれば、A123が削除の対象となります。
62名無しさん@そうだ選挙にいこう:2010/04/09(金) 21:16:18
【1 OSの種類         .】 Windows vista
【2 Excelのバージョン   】 Excel 2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 Excel VBA ファイル名
質問です
フォルダーをファイルを開く時に使う様なウィンドウで指定して
そのフォルダーに入っているファイル名を絶対パス付きで
リストアップするにはどうしたらよいでしょうか?
ファイル名だけや最初に自分でフォルダーのアドレスを
手入力するタイプのものしか見当たりませんでした。
宜しくお願いします。
63名無しさん@そうだ選挙にいこう:2010/04/09(金) 22:01:28
>>61
まだあるかもしれないけど 好きな方を

1) If Not (Cells(i, 6).Value Like "*-*") Then

2) If InStr(Cells(i, 6).Value, "-") = 0 Then
64名無しさん@そうだ選挙にいこう:2010/04/09(金) 22:22:53
>>62
Excel2007もってないから動くかどうかしらないけれど
Shellオブジェクトを使うとか

Set Shel = CreateObject("Shell.Application")
Set f = Shel.BrowseForFolder(0, "フォルダを選んでください", 17)
MsgBox f.Items.Item.path

参考サイト
http://www.roy.hi-ho.ne.jp/mutaguchi/wsh/object/shellfol.htm
6561:2010/04/09(金) 22:28:33
>>63
ありがdございます。
どちらもうまくいきましたが、上段の方を覚えます。
66名無しさん@そうだ選挙にいこう:2010/04/09(金) 22:30:37
>>64
ありがとうございます。
なんとかやってみます。
67名無しさん@そうだ選挙にいこう:2010/04/09(金) 23:27:47
>>55
お前釣りだろ?
数式バーの色を変えてほくそ笑んでいたやつじゃない?
68名無しさん@そうだ選挙にいこう:2010/04/09(金) 23:31:34
>>65
お前も釣りか?
>>61みたいなループでうまくいくわけねーよ。
69名無しさん@そうだ選挙にいこう:2010/04/10(土) 00:49:03
質問です。よろしくお願いします。
winXP。エクセル2007.

例えば、、、同じbook内、1〜20のシートがあり、おのおの A1 に数字がランダムに入力されている。

シート21にてcount関数を使い、シート1〜20のA1の数字が1以上のものをカウントします。
 
このとき、カウントされたシートがどれなのか?を知りたいのです。

何かよい方法はないでしょうか?

知っているかたいましたら教えてください。お願いします。
70名無しさん@そうだ選挙にいこう:2010/04/10(土) 00:50:28
>>68
削除すべきデータが少なくてたまたま連続した部分がなければうまくいってしまう

>>61
正しくは2行目を
For i = F To 4 Step -1
としなきゃいけない
71複乳:2010/04/10(土) 00:53:18
>>69
bこう・・どこかで見た気がする構文だ・・
72名無しさん@そうだ選挙にいこう:2010/04/10(土) 00:55:28
>>69
IF関数を20個並べる

質問が大雑把すぎるので回答も大雑把にしかできん
73名無しさん@そうだ選挙にいこう:2010/04/10(土) 03:15:53
CONVERT関数で時速を分速にしようとした時、
分速はどういうふうに表したらいいの?
m/mn m/min ではうまく動きませんでした。
74名無しさん@そうだ選挙にいこう:2010/04/10(土) 04:10:38
>>73
それCONVERT関数必要ないだろ
60で割るだけだぞ
7573:2010/04/10(土) 06:15:27
まぁ 関数の勉強に付き合ってよ

60で割るだけだとkm/minだけどね
1000かけないと
76名無しさん@そうだ選挙にいこう:2010/04/10(土) 06:50:23
答えとしては =CONVERT(CONVERT(A1,"km","m"),"mn","hr") だけど =A1*1000/60 のが早いだろ
77名無しさん@そうだ選挙にいこう:2010/04/10(土) 08:31:28
【OS】 Windows**
【Ver】Excel2007
【VBA】はい
【VBAでの回答の可否】可
初心者の私に、VBAを教えて下さい。
例えば、SHEET1に、メインの表があって、SHEET2以降が
データー表。最後尾のシートは最新の情報で、
マクロを実行させたら、常に最後尾の情報を更新させる
というのを作ってて、 (´・ω・`)??? な状態です。
シート数をカウントした変数(例えばX)をsheets(x)にしたら
常に最後尾のシートをアクティブにさせるのは判ったの
ですが、そこで止まってます。
更新させるシートが決まっていたら判るのですが、常に最後尾
って所で困っています。
ご教授をお願いします。
78複乳:2010/04/10(土) 09:44:11
>>77
コードは標準モジュールに書く
sheet1のボタンから始めたいなら
sheet1に
Private Sub CommandButton1_Click()
call k
End Sub
標準モジュールに
sub k()
End Sub
とする
79名無しさん@そうだ選挙にいこう:2010/04/10(土) 10:04:47
【OS】 WindowsXP
【Ver】Excel2007
【VBA】いいえ
【VBAでの回答の可否】可

あるデータにプラスとマイナスの数字が混ざっています。
プラスかマイナスの数字だけをセルで選択?するにはどうすればいいのでしょうか?
色をつけたり抽出したいんですが、色々試してみましたが分かりませんでした。
以上ですが宜しくお願いします。
80名無しさん@そうだ選挙にいこう:2010/04/10(土) 10:16:08
>>79
オートフィルタ
81名無しさん@そうだ選挙にいこう:2010/04/10(土) 10:34:36
>>78
スミマセン、全然言葉足らずでした。
SHEET1にマクロのボタンを設置して、ボタンを押したら
最後尾のシートの情報を、シート1に更新させると
いうマクロです。スミマセン(´・ω・`)

改めて…
【OS】 Windows**
【Ver】Excel2007
【VBA】はい
【VBAでの回答の可否】可

「一回動作を記憶させて、それを変数をいれた
シート名にすりゃ簡単」っと、思っていた時期がありました。

雰囲気的には、SHEET1の情報を最後尾シートでfind検索かけて
OFFSETでその情報をSHEE1に反映させるって感じです。
8279:2010/04/10(土) 10:36:23
>>80
回答ありがとうございます。
シ−トのセルををそのまま残して虫食いみたいにしたいんです。
もう少し詳しく説明していただけるとありがたいんですが・・・。
ずうずうしくて申し訳ないです。
83名無しさん@そうだ選挙にいこう:2010/04/10(土) 11:09:18
>>82
色つけなら条件付き書式の方がいいだろう。
抽出はデータの詳細設定。
84名無しさん@そうだ選挙にいこう:2010/04/10(土) 11:25:33
>>81
最後尾のシートって事なら
Set s = Worksheets(Worksheets.Count)

でいいんじゃないかな
(非表示のシートを含んだ最後尾のシートって事になるけど)

んで(使い方の例ね)
Worksheets("Sheet1").Range("A1").Value = s.Range("A1").Value
とかやるとか
85名無しさん@そうだ選挙にいこう:2010/04/10(土) 11:34:09
>>83
なるほど、分かりました。
ありがとうございました。
86名無しさん@そうだ選挙にいこう:2010/04/10(土) 13:23:11
>>81
Sheet1のCommandButton1クリック時イベントに
Private Sub CommandButton1_Click()
Call a
End Sub

標準モジュールに
Sub a()
Dim WS As Worksheet
Set WS = Worksheets(Worksheets.Count)
Worksheets("sheet1").Cells(1, 1).Value = WS.Cells(1, 1).Value
Set WS = Nothing
End Sub
87名無しさん@そうだ選挙にいこう:2010/04/10(土) 16:22:49
2007のリボンメニューを2003のメニュー式に変更出来ないでしょうか?
88複乳:2010/04/10(土) 17:48:47
2003 メニュー アドイン
でぐぐれ
89名無しさん@そうだ選挙にいこう:2010/04/10(土) 20:20:38
Excel2000、OSはXPか2000です。

ハイパーリンクを挿入すると、リンクをシングルクリックするとブラウザが立ちあがります。

これを、シングルクリックではブラウザを起動しないようにして、
ダブルクリックでブラウザを起動させるようにするには、どうすればいいでしょうか?

90名無しさん@そうだ選挙にいこう:2010/04/10(土) 21:21:00
>>89
ハイパーリンクの動作を買えることはできないので、
91名無しさん@そうだ選挙にいこう:2010/04/10(土) 21:21:58
書き込み失敗↑

>>89
ハイパーリンクを使わずにVBAのWorksheet_BeforeDoubleClickイベントで処理する
92あぼーん:あぼーん
あぼーん
93名無しさん@そうだ選挙にいこう:2010/04/11(日) 01:00:22
エクセル2003か2007で見栄えのいいグラフを作るコツとかが
詳しく載ってる本があったら教えてください。

94名無しさん@そうだ選挙にいこう:2010/04/11(日) 02:25:13
      N列  O列  P列           AE列
2      4月  5月   6月          2010年5月
3
4
5
6     700  500
7


N2セルに「2010/4/1」、O2セルに「2010/5/1」と入力し、ユーザー定義で
「4月」、「5月」と表示させています。
AE2セルには「2010/5/1」を書いて「2010年5月」と表示させ、7行目に
次の式を入れました。

N7セル =IF(AE2<N2,N6,IF(AE2=N2,N6,0))
O7セル =IF(AE2<O2,O6,IF(AE2=O2,SUM(N6:O6),0))。

このとき、N2はAE2に対して過去なので0、O2は同じなのでN6から
O6までの累計を7行目に表示させます。

と、ここまでは良かったですが、AE2セルに「2010/5/5」と入れると
表示は「2010年5月」になるものの、O7が0になってしまいます。

そこで、「2010/5/15」と入れても「2010/5/1」となるような関数がありますか?
95名無しさん@そうだ選挙にいこう:2010/04/11(日) 04:12:12
作ればある
96名無しさん@そうだ選挙にいこう:2010/04/11(日) 04:20:14
>>94
A1セルに入った年月日の「日」を強制的に1にするには、=DATE(YEAR(A1),MONTH(A1),1)
つまり
=IF(AE2<N2 以下略
の部分を
=IF(DATE(YEAR(AE2),MONTH(AE2),1)<DATE(YEAR(N2),MONTH(N2),1) 以下略
のように置き換えればいい
他の式もすべて同様にIFの部分を直せばいいが、式がどんどん長くなってしまうので、
修正した日付かIFの判定結果だけをを空いたセルに入れておくといい

※アドインを入れてもいいのなら =EOMONTH(A1,-1)+1 という式でも月頭のシリアル値を求めることができる
少し数式が短くなる
97複乳:2010/04/11(日) 09:13:51
>>93
見栄えの良いグラフ
でぐぐれ。
98名無しさん@そうだ選挙にいこう:2010/04/11(日) 10:20:41
>>97
答える気が無いなら黙ってろホームレス
99複乳:2010/04/11(日) 10:50:14
>>98
では代わりにお答え下さい><;
この手の質問は誰も答えられないんだよなぁ
100名無しさん@そうだ選挙にいこう:2010/04/11(日) 11:08:44
見栄えの良いグラフとかになってくると「センス」の問題w
101単乳:2010/04/11(日) 11:20:37
まあ、ケンカはやめようじゃないかw
102名無しさん@そうだ選挙にいこう:2010/04/11(日) 12:00:47
>>86
遅くなりましたが、判りやすい回答ありがとうございました。
そういえば…最後のSET の NOTHING って試作のときに
入れてなかったです(^_^; 
まだまだ勉強しなきゃ駄目ですね… ありがとうございます。

あと、もう少しやりたい事がありますが、頑張ってみて
どうしても駄目だったらまた質問させてもらいます。
103あぼーん:あぼーん
あぼーん
104名無しさん@そうだ選挙にいこう:2010/04/11(日) 17:02:54
54:30

と入力して、54分30秒と表示させることって無理ですかな?

Excel2007です><
105複乳:2010/04/11(日) 17:30:44
>>104
時間計算に使うとおかしくなるから計算には使わないでね
ユーザー書式で
[h]"分"m"秒"

計算でも使えるようにするなら
A1に時刻
B1=TIME(0,DAY(A1)*24+HOUR(A1),MINUTE(A1))
B1の書式を
[m]:ss
106名無しさん@そうだ選挙にいこう:2010/04/11(日) 17:37:11
>>105
レスありがとです

時間を扱うときは最初からTIME関数を使ったほうが安全で早そうですね!><
ありがとござました!
107名無しさん@そうだ選挙にいこう:2010/04/11(日) 17:51:37
>>105-106
計算で使うなら=A1/60じゃないのか?
108複乳:2010/04/11(日) 18:07:54
>>107
gyaaaaaaaaaasoudesita
109質問:2010/04/11(日) 20:27:34
2007を使っています。

色文字についてですが、
ある一定の数字を越えた整数を記入すると赤くなるとかできますか?

(例えば100と設定し101から赤文字になるとか)

分かりにくい文章ですみません
110名無しさん@そうだ選挙にいこう:2010/04/11(日) 20:28:50
>>109
条件付き書式で出来るよん
111名無しさん@そうだ選挙にいこう:2010/04/11(日) 21:14:17
>>109
色を付けたい範囲を選択して右クリック、「セルの書式設定」の「ユーザー定義」で
[赤][>100]0;0
と入れる
11294:2010/04/11(日) 22:04:10
>>96
どうもありがとうございます。
思ってたより大変なのが分りました。
IFが長くて頭が痛くなりそうなので、
AE2に「=DATE(YEAR(AE4),MONTH(AE4),1)」と入れ、
AE4に年月日を入れることにしました。
113名無しさん@そうだ選挙にいこう:2010/04/11(日) 22:06:47
条件付き書式を設定しているセルがどれだか分からなくなりました。
こういうことは頻繁にあり、そのつど困っているのですがなにかいい方法があったりしますか?
114名無しさん@そうだ選挙にいこう:2010/04/11(日) 22:11:48
>>113
CTRL+Gでセル選択をクリック、「条件付き書式」をチェックしてOKでいけるよ〜
115名無しさん@そうだ選挙にいこう:2010/04/11(日) 22:40:00
>>110-111
ありがとう☆
116113:2010/04/11(日) 23:20:37
>>114
Oh, thank you very much.
I'm awed by such a magnificent, handy function equipped with Excel.
117名無しさん@そうだ選挙にいこう:2010/04/12(月) 00:29:50
「このブックには更新できないリンクが1つ以上含まれています」とメッセージが出たとき、
どこのセルが他のブックを参照してるのか探すにはどうすればいいですか?
118名無しさん@そうだ選挙にいこう:2010/04/12(月) 07:00:54
>>117
ここの下の方に書いてある
ttp://support.microsoft.com/kb/880959/JA/
119名無しさん@そうだ選挙にいこう:2010/04/12(月) 09:54:57
あいまいで申し訳ないのですが、ググるためのキーワードを教えてください
たとえば全体で1万件データがあって、今2000件(20パーセント)処理してますよ!
というのがわかるような、バー(?)をユーザーフォーム上に表示させたいのです。
ソフトをインストールするときに出てくるようなものです。

(1)このバー(?)の名前を教えてください
(2)これを(標準の関数があるとして)使わずに、自分の書いた絵で表現することも
  可能でしょうか?
  (たとえばハチマキしたウサギがゴールに向かっていくような絵)
Excel2003です。
120名無しさん@そうだ選挙にいこう:2010/04/12(月) 10:17:33
>>119
1)プログレスバー
2)Yes. VBA or ...
121119:2010/04/12(月) 10:31:08
>>120
ありがとうございました。
プログレスバーって初めて聞いた言葉でした!
これで前に進めそうです。
122117:2010/04/12(月) 19:43:30
>>118
リンクを解除したいのではなく、どこのセルが他のブックを参照してるのか
そのセルを知りたいんです。
123複乳:2010/04/12(月) 19:48:27
>>122
"["って記号を検索
数式にこれが入ってれば他のブックを検索してるはずだからね
124名無しさん@そうだ選挙にいこう:2010/04/12(月) 19:54:14
おい、復乳!
参考になったぞ!
125117:2010/04/12(月) 22:26:25
>>123
おい、復乳さん!
参考になりますた。
126名無しさん@そうだ選挙にいこう:2010/04/12(月) 23:37:16
【1 OSの種類】 Windows XP
【2 Excelのバージョン】 Excel2003
【3 VBAが使えるか】 いいえ
【4 VBAでの回答の可否】否
【5 検索キーワード】 エクセル アポストロフィ ひげ 消

助けて下さい。
例えば、'568'とセルに入力するのですが、
表示は先頭の'が抜けて、568'となってしまいます。
どうすれば、両方の''が表示されるようになりますでしょうか。

参考キャプ
http://beebee2see.appspot.com/i/agpiZWViZWUyc2VlchQLEgxJbWFnZUFuZFRleHQY8pVuDA.jpg

よろしくお願いします。
127名無しさん@そうだ選挙にいこう:2010/04/12(月) 23:59:01
釣れますか?
128126:2010/04/13(火) 00:03:19
すいません、とても初歩的な質問だから釣りに見えるのでしょうか。
本当に困ってます。助けて下さい。
129名無しさん@そうだ選挙にいこう:2010/04/13(火) 00:12:39
''568'くらいなんで考え付かないの?
馬鹿なの?
130名無しさん@そうだ選挙にいこう:2010/04/13(火) 00:13:53
あるいは表示形式が@で'568'とかね
131複乳:2010/04/13(火) 00:16:28
>>126
頭に'(クォーテーション)がつくと文字列を表す。つまり>>129
>>127
たまに見るけどこういう場合の釣りってどういう意味なんだ?
>>130
それ試したけど無理だったわ
132名無しさん@そうだ選挙にいこう:2010/04/13(火) 00:26:38
>>131
この場合の「釣り」ってのは、あまりにも簡単すぎて人に聞くまでもないことを
わざわざ質問して、スレの流れを妨げたり回答者をバカにすること。

でも、本当に初心者で記号の正確な意味や用法を知らない場合も多い。
他人を疑ってばかりいる賢い人間と、バカでも誰にでも親切な人と、どっちがいいだろうね。
133126:2010/04/13(火) 00:44:49
みなさん、ありがとうございました!
''568'で無事に表示されました。
お騒がせしてすみませんでした。
134名無しさん@そうだ選挙にいこう:2010/04/13(火) 06:52:29
まぁ、春です。
新社会人が新しい職場で奮闘しているものと思って温かく見守ってあげましょう。
135複乳:2010/04/13(火) 11:25:19
>>132
ありがとうございます。このタイプの釣り、少ない気はするんだけどなぁ
136複乳:2010/04/13(火) 11:26:51
あー、言い忘れてたな
そもそも'や"で囲む事自体やめたほうがいいよ、と
EXCELは元々それを省くような挙動だから、別の手を考えたほうがいい
137名無しさん@そうだ選挙にいこう:2010/04/13(火) 12:21:45
' のことで質問です
セルでは先頭の ' は表示はされないけど上の欄ではちゃんと入力されてる
なんでこんな変なの?

こんなのが他のソフトでインポートとかしたときにバグとなってでてくる
極論すると例えば宇宙飛行ロケットのプログラミングならこういうのが設計ミスでロケット爆発の原因にもなりかねん
なぜシンプルに ' をそのまま表示させないんだ?

' の先頭が表示されないようになっている理由とそのれ経緯について教えてくれないか?
138名無しさん@そうだ選挙にいこう:2010/04/13(火) 13:36:55
Excel2003なら「読み上げ」ツールバーで数字を英語で読み上げてくれる機能があることはみなさん周知してますね。
私はこれで英語の数字のリスニング力を鍛えようと思ってます。
=int(RAND()*1000)+1
で1から1000までの乱数を出しておき、「読み上げ」ツールバーのボタンを押すだけで、書き出してたすべての数字を読み上げてくれる便利な機能です。

そこで質問。

「1つのセルの読み上げを聞いたあと、すばやく自分でのその数字を入力」 ← これを繰り返しやる方法はありませんか?
なぜなら、ユーザが入力の操作をした時点で読み上げが終了してしまうんです(つまり読み上げ機能は全セルを読み上げるが、なにか作業すると終了してしまう)。
139名無しさん@そうだ選挙にいこう:2010/04/13(火) 13:53:20
>>137
' の記号を使うのはLotus1-2-3から引き継いだ機能。
セルの内容を文字列として左寄せする、という指示をソフトに与えるための記号で「接頭辞」と呼ばれる。
知らずに予想外の動作をしたとしても、それは単なる勉強不足。
140複乳:2010/04/13(火) 13:53:38
>>137
マイクロソフトのアホが設計した仕様。経緯なんて知らんし
知ってもどうにもならん
>>138
そんな機能は知らんが、メモ帳でも開いて横で入力作業するのはどう?
それでも止まるのかな
後はVBAで出来るかもしれんがあまり自信が無い
141名無しさん@そうだ選挙にいこう:2010/04/13(火) 13:57:22
>>138
「Enterキーを押した時に読み上げる」というオプションがあるので、それを使えばうまくできるかも
142名無しさん@そうだ選挙にいこう:2010/04/13(火) 14:01:08
よろしくお願いします。

他ブックにデーターを1行づつコピーするときなんですが
30列のうち5列だけは「形式を指定して」する必要があり1列はコピー不要。

この場合、行を一括でコピーした後、5列分だけセルのコピーをやり直し1列は削除するのと
最初からセル単位で29回コピーするのでは、どちらが正しい(早い)やり方なんでしょうか。
143142:2010/04/13(火) 14:05:35
すいません、書き忘れました
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 処理速度 ベンチマーク など

VBAで大量データを扱う場合についての質問です。
144名無しさん@そうだ選挙にいこう:2010/04/13(火) 14:28:16
>>143
経験則と想像で書くけど、全体をまとめてコピーしたあと、
あらためてコピー先で不要データの削除や書式の解除をした方が早いと思う。
そういうベンチマークは見たことがないので、厳密な結果が欲しいんなら
自分で実験するしかないと思う。
145名無しさん@そうだ選挙にいこう:2010/04/13(火) 16:56:57
>>144 さん ありがとうございます。
行コピーは機械語になるときセルのコピーの繰り返しと一緒なのでは?などと
頓珍漢な妄想をあれこれ膨らませ、手が止まってました。
一括コピーして修正という方法でいこうと思います。
146名無しさん@そうだ選挙にいこう:2010/04/13(火) 18:01:27
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 7いいえ
【4 VBAでの回答の可否】 可7
【5 検索キーワード     】 エクセル 関数 文字 行 検索


質問です
関数で文字を検索してその文字があったら、その文字が入っているセルの行番号を取得したいのですが
やり方がわかりません

例えば
検索文字→リンゴ
の場合A10にリンゴという文字が入っていると、行番号10を返してくれる

よろしくお願いいたします。
147名無しさん@そうだ選挙にいこう:2010/04/13(火) 18:16:23
>>146
探したい場所がA列なら
=MATCH("りんご",A:A,0)
148名無しさん@そうだ選挙にいこう:2010/04/13(火) 22:29:38
【1 OSの種類         .】 Windows xp
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

EXACTを使ったのですが、式をそのまま表示されてしまいます。。
他の関数は問題なかったのですが、何か別設定が必要なのでしょうか?


よろしくお願い致します。
149名無しさん@そうだ選挙にいこう:2010/04/13(火) 22:32:31
>>148
セルの書式設定が文字列になってないですか?
その場合は標準にしてみてください。
150名無しさん@そうだ選挙にいこう:2010/04/14(水) 08:06:15
>>149
標準になってました、ありがとうございます。
なんでだろう、、
151名無しさん@そうだ選挙にいこう:2010/04/14(水) 09:52:37
>>147
無事できました

別シートを参照する形にしたかったのでこうなりました
=MATCH("りんご",INDIRECT(A15&"!A:A"),0)

どうもありがとうございました
152名無しさん@そうだ選挙にいこう:2010/04/14(水) 22:06:07
ファイルを開いく直前、「○○を入力してください」というメッセージを出して、
開いた時点でその入力したものがA1(例)の特定のセルに入ってるように、
VBAかなにかでどうやったら出来ますか?
153複乳:2010/04/14(水) 22:33:18
>>152
Thisworkbookはこうやって使うのか・・

sheet1でも標準モジュールでもなく、
Thisworkbookに以下を記述

Private Sub Workbook_Open()
Dim a As String
MsgBox "死にたい。"
a = InputBox("何かを入力してください・・")
ActiveSheet.Cells(1, 1) = a
End Sub
154152:2010/04/14(水) 22:40:25
>>153
Thanks so much.
でもMsgBoxの内容が怖い・・・
155100年カレンダー:2010/04/14(水) 22:43:39
以前話題になった「100年カレンダー」ができました。
A4二枚の紙に100年分の日々がプリントアウトされます。
1日といえどもこのカレンダー上で1日分のマス目がはっきり見えます。
よって、人生で一日も無駄にはできないと自分をひきしめる効果があります。

しかしネガティブな人は使用はご注意を。

http://www1.axfc.net/uploader/File/so/42075.xls
156名無しさん@そうだ選挙にいこう:2010/04/14(水) 22:45:53
じつは>>155で「B367のセルに最初の年を入力してください。」というメッセージを出して、
それをB367に入れるようにしようと思ったけど、コメントの挿入機能ですっきりできた。
157名無しさん@そうだ選挙にいこう:2010/04/14(水) 23:12:32
こんばんわ。
質問があります、よろしくお願いします。
【1 OSの種類         .】 Windows XP Professinal SP3 32bit
【2 Excelのバージョン   】 Excel 2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 エクセル 常に 別ウインドウ 設定 ファイル default

【質問】 エクセルのファイルを開いた際に、常に別ウインドウで開きたいです。
     ※エクセル自体の×ボタンを押しても、他のエクセルファイルを開いて
      いるものは閉じないようにしたいのです。

今は↓のサイトにある方法でできるようにしているのですが、以前はエクセルの
設定ファイルのようなものを開いて、基本の動作を色々設定したような記憶が
あるのですが忘れてしまったので、その方法を知りたいです。
ttp://www.trickpalace.net/windows/tips/excel.open.window.htm

ご存知の方いましたら、どうかよろしくお願いします。
158複乳:2010/04/14(水) 23:36:00
>>157
ツール オプション 全般 ほかのあっぷりけーしょんを無視する
159157:2010/04/14(水) 23:54:25
>>158
れす、ありがとうございます。
その設定にしてみましたが、ファイルをクリックしても
エクセルが立ち上がるだけで、ファイルが開きませんでした。
160名無しさん@そうだ選挙にいこう:2010/04/14(水) 23:57:38
設定ファイルを書き換えたのって、もっと古いバージョンの話じゃなくて?
フォルダの中をざっと検索してみたけど、2003にはそういうのは見当たらないっぽいんだけど
161名無しさん@そうだ選挙にいこう:2010/04/15(木) 00:24:50
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel 2003

AL-mailというメーラーを使っています。
マクロで集計をしてますが、終わったら「集計が終わりますた!」と
特定の人へメールを送信するにはどうすればいいですか?
162名無しさん@そうだ選挙にいこう:2010/04/15(木) 00:47:25
>>161
メールを送る方法は色々あるけど、マクロを使ってメーラーを経由せずに直接送るのが定番。
そのマクロを使う方法にも種類があって、一番単純で個人的におすすめするのはCDOを使う方法。
「VBA CDO メール」みたいなキーワードでぐぐるとサンプルが色々出てくる。
163名無しさん@そうだ選挙にいこう:2010/04/15(木) 02:45:40
初めて質問させていただきます。

会社のPCが新しくなって、Excelが2007になりました。

今まで色々な資料をExcel2003(会社のPCはほとんど今も2003です)で作ってきました。

先程共有サーバー上のFILEを編集したのですが、完成して上書き保存をしようとしたら保存が出来ません。

2007にて2003のFILEを開き編集したら上書き保存は出来ないのでしょうか・・・誰か助けてください><

【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】いいえ
【4 VBAでの回答の可否】否
164名無しさん@そうだ選挙にいこう:2010/04/15(木) 04:24:28
>>163
まずはエラーメッセージを「そのまま」書き写して。
一字一句間違えないよう、勝手に意訳や省略もしてはいけない。それが質問する時の基本。
165名無しさん@そうだ選挙にいこう:2010/04/15(木) 04:27:42
>>164様 ありがとうございます。

エラーメッセージは「保存出来ません」のみでポップアップしてきました。

これで分かるでしょうか・・・
166名無しさん@そうだ選挙にいこう:2010/04/15(木) 05:18:32
>>165
まずは、名前を付けて保存で自分のHDDに保存できるかどうか試してみて
167名無しさん@そうだ選挙にいこう:2010/04/15(木) 05:20:52
名前をつけて保存はいけました。

が、別FILEになってしまいます・・・上書きはだめでした><
168名無しさん@そうだ選挙にいこう:2010/04/15(木) 05:54:14
>>167
検索した限り根本的な解決方法が見つからないので、
名前を付けて保存したあとファイル名を戻してエクスプローラーでコピー
169複乳:2010/04/15(木) 09:13:59
>>159
ttp://www.trickpalace.net/windows/tips/excel.open.window.htm
で設定するオプションは「開く」になってる?
170名無しさん@そうだ選挙にいこう:2010/04/15(木) 12:10:41
>>163
うちの会社も同じ状態になった。
microsoft updateの自動更新を無効にして、4月14日の更新を
削除したら復活した。
171複乳:2010/04/15(木) 12:14:00
>>163
ファイルのアクセス権とかどうでしょ
172名無しさん@そうだ選挙にいこう:2010/04/15(木) 12:51:59
>>170
もしかしてKB981715が原因だったの?
173名無しさん@そうだ選挙にいこう:2010/04/15(木) 16:00:16
1:windows 7
2:2007
3:いいえ
4:否
5:2007 保護 グループ化

特定シート内のセルに誤入力を防ぐ為ロックを掛けています
同じものをブック内に作り2ページとなったので2ページ目のみをグループ化して入力情報が無い場合閉じて印刷時に出ないようにしたいのですが
シート内にロックがかかっている為にグループを開閉することができません、ロックをかけつつ開閉をするには何か良い方法があればお聞かせ下さい
174157:2010/04/15(木) 16:17:09
>>160
レスありがとうございます。
もしかしたらOffice2000やXPだったかもしれません。

>>169
レスありがとうございます。
「開く(O)」が既定になっています。
175名無しさん@そうだ選挙にいこう:2010/04/15(木) 16:59:18
EXCEL2007、VistaHomeです。

[Office]ボタンを押すと右側に表示される「最近使用したドキュメント」リストの中の
特定のドキュメント名を削除する(表示しないようにする)には、
どうすれば良いのでしょうか?

よろしくお願いします。
176名無しさん@そうだ選挙にいこう:2010/04/15(木) 17:24:51
>>170
こちらではKB980232を削除することで回復。
どうもXPのほうのアップデートで起こっているらしい。
KB980232はSMB接続時のセキュリティホールの対応らしいので
そのあたりで何か不具合があったと思われ…
177複乳:2010/04/15(木) 17:59:01
>>174
じゃーわからんなぁ

それか
【質問】 エクセルのファイルを開いた際に〜
だけなら、CTRL+Wでブック一つだけ閉じることも出来るよ
178名無しさん@そうだ選挙にいこう:2010/04/15(木) 20:36:20
>>177
おい、複乳!
手抜きしてないか?
179複乳:2010/04/15(木) 21:44:58
>>178
手コキはしたが、手抜きはしてねえぜ
180名無しさん@そうだ選挙にいこう:2010/04/15(木) 21:48:37
>>179
おい、複乳!
手、洗ったか?
181名無しさん@そうだ選挙にいこう:2010/04/15(木) 22:00:09
>>175
特定の項目だけをあとから消すにはレジストリを書き換える。
最初から何も表示されないようにするにはオフィスボタン→Excelのオプション→詳細設定
→最近使用したドキュメントの一覧に表示するドキュメントの数→0にする

特定のファイルだけを記録しないようにすることはできない。
182名無しさん@そうだ選挙にいこう:2010/04/15(木) 22:54:02
XP 2003
シートの文字が読みにくく、全角の "(" と半角の "(" をよく間違えます。
フォントをMSゴシックに変えられますか?
183名無しさん@そうだ選挙にいこう:2010/04/15(木) 22:58:15
>>182
ツール→オプション→全般→標準フォント
184名無しさん@そうだ選挙にいこう:2010/04/15(木) 23:05:55
>>183
シートじゃなくて、シートタブでした。。
185157:2010/04/15(木) 23:57:41
>>177
たびたび、レスありがとうございます。
(*・ω・)そですか〜。
いろいろとありがとうございました。

しかし、設定ファイルが思い出せない! _| ̄|●lll
excel.xlsとかdefault.xlsみたいな感じだったような。


>>182
シートタブの大きさ位しか変更できないぽいですね。
あとは、アドオンとか作ればできるのかな!?
それか、タブのところのフォントを外部からウインドウ操作系ソフトとかで・・・ウワーナニヲスル
186名無しさん@そうだ選挙にいこう:2010/04/16(金) 00:24:00
デスクトップテーマを変えるとシートタブのフォントも変わるから、
何かの設定と連動してるんだと思うけど、どこが関係あるのかよくわからんわ。
187名無しさん@そうだ選挙にいこう:2010/04/16(金) 00:50:50
シートコピーで質問です。
WB1にシート"集計"、"管理"があるとき、次のマクロでコピペすると
"集計"、"管理"、"9月"、"8月"、"7月"、"6月"、"5月"、"4月"になってしまいます。

SN2="管理"
For i = 4 To 9
 SN1 = i & "月"
 Workbooks(WB1).Worksheets(SN1).Copy After:=Workbooks(WB2).Worksheets(SN2)
Next

これを、"集計"、"管理"、"4月"、"5月"、"6月"、"7月"、"8月"、"9月"の順で
コピペするにはどう書けばいいでしょうか?
188173:2010/04/16(金) 01:29:22
どなたか>>173をお願いします
189名無しさん@そうだ選挙にいこう:2010/04/16(金) 01:31:17
>>187
SN2="管理"
For i = 9 To 4 Step -1
 SN1 = i & "月"
 Workbooks(WB1).Worksheets(SN1).Copy After:=Workbooks(WB2).Worksheets(SN2)
Next
190名無しさん@そうだ選挙にいこう:2010/04/16(金) 01:43:05
>>187
4月から順に「SN2="管理"」シートのすぐ後にコピーしなさい!ってコードだから
当然、最終的には処理の順番とは逆に9月、8月・・・4月の順に並ぶよね。

それが理解できたら、簡単に修正できると思うよ。


191名無しさん@そうだ選挙にいこう:2010/04/16(金) 02:05:11
>>189-190
ありがとうございます。
解決しました。
192名無しさん@そうだ選挙にいこう:2010/04/16(金) 08:40:27
>>189
変数の使い方がおかしいね。
"管理"を変数に入れるんじゃなくて、Workbooks(WB2).Worksheets("管理")を変数に入れた方がいい。
193名無しさん@そうだ選挙にいこう:2010/04/16(金) 08:41:31
ごめん、上は187あてだった。
194複乳:2010/04/16(金) 09:11:16
>>179
ふっふっふ。そいつは私の偽者だ!
ちなみに手抜きはしていない
195175:2010/04/16(金) 10:41:11
>>181
レスありがとうございます
196名無しさん@そうだ選挙にいこう:2010/04/16(金) 15:37:32
複数シートのコピーは一気にやった方が速いし順番も書いたとおりになる

SN2="管理"
SL=array("4月","5月","6月","7月","8月","9月") 'Sheets List
Workbooks(WB1).Worksheets(SL).Copy After:=Workbooks(WB2).Worksheets(SN2)

Forで回す場合は配列にデータを足すだけにして、ループを抜けてから一気にコピー
197名無しさん@そうだ選挙にいこう:2010/04/16(金) 17:33:30
XP SP3でExcel2000を使っているのですが、
ホイールクリックにペーストを割り当てるにはどんな方法がありますか?
198名無しさん@そうだ選挙にいこう:2010/04/16(金) 19:58:28
>>197
フリーウェアかマウス付属のツール。どっちにしてもExcelとは直接関係ない。
199名無しさん@そうだ選挙にいこう:2010/04/16(金) 21:04:29
>>196
値リストってめんどいわ、それこそ.Nameで取得するとか。
200名無しさん@そうだ選挙にいこう:2010/04/16(金) 21:48:31
【1 OSの種類         .】 Windows vista
【2 Excelのバージョン   】 Excel2003 or 2007
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

シート上にマクロを登録したのボタンを配置しているのですが、
シートをスクロールさせてもボタンが動かないようにしたいのですが、方法はあるのでしょうか?

ウィンド枠の固定はすでに使用しているので×
そのファイルのみで使用するマクロなのでツールバーに配置するのも×

C3セルの上くらいにボタンが浮いているというイメージなのですが無理でしょうか?
201名無しさん@そうだ選挙にいこう:2010/04/16(金) 22:24:21
>>200
そういう方法はない。

代替案として、ユーザーフォームなら場所を固定することが可能。
そのファイルを開いたときだけツールバーを出すってのもできる。
202名無しさん@そうだ選挙にいこう:2010/04/17(土) 01:15:10
Excelの列の数を拡張( 例えば500個以上 )することはできますか?
203名無しさん@そうだ選挙にいこう:2010/04/17(土) 01:28:34
>>202
出来ません。
2007を買いましょう。
もうすぐ2010も出るけど。
204名無しさん@そうだ選挙にいこう:2010/04/17(土) 01:50:38
【1 OSの種類         .】 Windows xp
【2 Excelのバージョン   】 Excel2003 or 2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可

. (ドット)で始まるシートにハイパーリンクを張りたいのですが失敗します
こんな感じでやっています↓

=HYPERLINK("#.aa!V33")

シート名にドットで始まる名前をつけるというのがそもそもおかしいのかもしれませんが
私はそれに意見できる立場でないので、シート名変更はできません
205名無しさん@そうだ選挙にいこう:2010/04/17(土) 01:54:49
=HYPERLINK('.aa'!V33)

でいけたけど。
206名無しさん@そうだ選挙にいこう:2010/04/17(土) 02:04:47
> =HYPERLINK('.aa'!V33)
うーん
リンクにならなくてエラーでちゃう...
207名無しさん@そうだ選挙にいこう:2010/04/17(土) 02:07:26
【1 OSの種類         .】 Windows XP sp3
【2 Excelのバージョン   】 Excel 2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 excel 画像 ポップアップ セル
01
ttp://www.dotup.org/uploda/www.dotup.org816716.jpg
02
ttp://www.dotup.org/uploda/www.dotup.org816717.jpg

口で伝えるのが苦手なためちょいと画像をUPします。
こんなふうに、特定のセルへマウスを持っていと画像がポップアップするようにしたいのです。

例えば、猫の名前を100匹分羅列し、それぞれ違う画像がでれば
名前+画像が出るので分かりやすいじゃないですか!

エクセルじゃあ無理でしょうか?

VBAは、まだhellow worldの門すら叩いてない状態ですが
スクリプトさえ分かればなんとか記述していきたいです。
208名無しさん@そうだ選挙にいこう:2010/04/17(土) 02:11:10
【1 OSの種類         .】 Windows xp
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

デスクトップにアクティブなbookの名前を自動で拾って
フォーマットをCSV→TXTに変換して保存したいんですけど
ファイルネームを上手く拾ってくれたらマイドキュメントに保存されたり
デスクトップに保存成功したらファイルネーム拾い間違ったりします
ググって探した範囲で色々試しましたがイマイチ解決に至りませんでした
以下ググっていじったコードです

Dim Path As String, WSH As Variant
Set WSH = CreateObject("Wscript.Shell")
Path = WSH.SpecialFolders("Desktop") & "\"
Fname = ActiveWorkbook.Name
ActiveWorkbook.SaveAs FileName:=Path & Fname.txt, _
FileFormat:=xlCurrentPlatformText
Set WSH = Nothing

おかしい所の指摘、もしくはコードお願いします
209名無しさん@そうだ選挙にいこう:2010/04/17(土) 02:33:37
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 エクセル 数独

同じセルに関数を使うこともあれば、
単なる数字を使うこともあるんですけど
関数を使いたいときは関数を、
数字を使いたいときは数字を使う方法がありますか?
210名無しさん@そうだ選挙にいこう:2010/04/17(土) 02:51:51
>>207
Excelじゃ無理
Visual Basicとか使ってExcelオブジェクトを貼り付ければ可能
211名無しさん@そうだ選挙にいこう:2010/04/17(土) 02:58:13
こんど会社がExcel2003→2007にして大混乱。
この2007へのバージョンアップにあたり気をつけるべきこと(新機能など含む)をまとめたサイトはないですか?
212名無しさん@そうだ選挙にいこう:2010/04/17(土) 02:58:38
>>204
HYPERLINK関数を使わずに、メニューから挿入→ハイパーリンクってやればできるけど
213名無しさん@そうだ選挙にいこう:2010/04/17(土) 03:03:51
>>207
VBAが本来持ってる関数だけじゃ無理だけど、APIってのを使えば基本的にはなんでもできる。
ただしかなり難易度が高い。
VBA自体が入門者レベルなら不可能だと思っていい。
214名無しさん@そうだ選挙にいこう:2010/04/17(土) 03:04:46
>>207
顧客管理かなにか?
Webで作りこむAJAXのほうが適してる気がする。
215名無しさん@そうだ選挙にいこう:2010/04/17(土) 03:33:18
>>208
ファイル名の処理がおかしい。拡張子をtxtに変えるにはこうする。

Fname = ActiveWorkbook.Name
sp = 1: lp = 0
Do
  pp = InStr(sp, Fname, ".")
  If pp > 0 Then lp = pp: sp = pp + 1
Loop Until pp = 0
If lp > 0 Then Fname = Left(Fname, lp - 1)
ActiveWorkbook.SaveAs FileName:=Path & Fname & ".txt", _
FileFormat:=xlCurrentPlatformText
216名無しさん@そうだ選挙にいこう:2010/04/17(土) 03:46:27
>>211
とりあえず2003と2007はまったく違うソフトだと思った方がいい。
今までに作ったシートは、そのまま使えればラッキー、基本的にはかなりの手直しが必要。
とくに印刷関係とオートシェイプ。
217名無しさん@そうだ選挙にいこう:2010/04/17(土) 03:50:52
>>209
セルには定数か数式かどっちかしか入れることができない。
VBAを使えばセルの内容を書き換えることはできるけど、
普通は =IF(条件, 数式, 定数) みたいにしてセルの表示内容を変更する。
218名無しさん@そうだ選挙にいこう:2010/04/17(土) 05:05:51
1行目に名前が入ったセルがあります。
データによって丸付き数字(1〜15)が先頭にあるため、丸付き数字だけを
抜きたいのですが、シンプルな書き方があれば教えてください。

CLM = Range("IV1").End(xlToLeft).Column

For k = 1 To CLM
If Left(Cells(1, k), 1) = "@" Then
Cells(1, k) = Right(Cells(1, k).Value, Len(Cells(1, k).Value) - 1)
ElseIf Left(Cells(1, k), 1) = "A" Then
Cells(1, k) = Right(Cells(1, k).Value, Len(Cells(1, k).Value) - 1)

   省略

End If
Next
219218:2010/04/17(土) 05:09:32
x For k = 1 To CLM
o For k = 1 To 15
220名無しさん@そうだ選挙にいこう:2010/04/17(土) 06:02:09
>>218
変数名にkkってのを使うとまずい場合は自分で書き換えてね。

For k = 1 To 15
  For kk = Asc("@") To Asc("S")
    Cells(1, k).Value = Replace(Cells(1, k), Chr(kk), "")
Next kk, k
221名無しさん@そうだ選挙にいこう:2010/04/17(土) 06:07:16
>>218
ちょっと修正。これよりシンプルなのは思いつかん

For Each k In Range("A1:O1")
  For kk = Asc("@") To Asc("S")
    k.Value = Replace(k, Chr(kk), "")
Next kk, k
222名無しさん@そうだ選挙にいこう:2010/04/17(土) 06:17:33
なんどもスマソ
もし先頭以外にも丸付き数字があって、それが消えたら困る場合はこっちね

For Each k In Range("A1:O1")
  For kk = Asc("@") To Asc("S")
    k.Value = Replace(Left(k, 1), Chr(kk), "") & Mid(k, 2)
Next kk, k
223名無しさん@そうだ選挙にいこう:2010/04/17(土) 07:42:59
最初っから先頭だけ調べた方が簡単で速い
For Each k In Range("A1:O1")
If "@" <= Left(k, 1) And Left(k, 1) <= "S" Then k.Value = Mid(k, 2)
Next
224名無しさん@そうだ選挙にいこう:2010/04/17(土) 07:47:39
それなら1つ目のLeftは無駄
For Each k In Range("A1:O1")
  If "@" <= k And Left(k, 1) <= "S" Then k.Value = Mid(k, 2)
Next
225名無しさん@そうだ選挙にいこう:2010/04/17(土) 07:52:02
ウザ
226名無しさん@そうだ選挙にいこう:2010/04/17(土) 08:10:15
なら来なきゃいいの
227名無しさん@そうだ選挙にいこう:2010/04/17(土) 08:45:25
次の質問どうぞ
228名無しさん@そうだ選挙にいこう:2010/04/17(土) 09:01:12
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 エクセル 相談所 複乳 天才

複乳さんは♂ですか?♀ですか?
229名無しさん@そうだ選挙にいこう:2010/04/17(土) 09:44:38
>>215
出来ましたありがとうございます!
感謝です
230名無しさん@そうだ選挙にいこう:2010/04/17(土) 12:35:25
>>228
そういうのは↓で。
【質問不可】Excel総合相談所スレの雑談・議論スレ2
http://pc11.2ch.net/test/read.cgi/bsoft/1151651536/l50
231名無しさん@そうだ選挙にいこう:2010/04/17(土) 14:07:08
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【5 検索キーワード     】 Excel スクロール 左右

取引先からメール添付で来たファイルなんですが、スクロールが縦方向ではなく
横方向になってるものがあります。これ以外のファイルは、問題ありません。
また、スクロールをクリックすると黒い▲が左右方向にしか出ません。

ググって調べてみましたが、マウスを買い換えろとか、Excelの再インストールとか
的はずれなものしか探せませんでした。
何か原因と対策についてご存知の方がいらっしゃれば教えてください。
よろしくお願いします。
232名無しさん@そうだ選挙にいこう:2010/04/17(土) 16:05:00
WinXP
Excel2007

Excelを起動したとき、自分が創ったテンプレートを開くように設定するやり方があれば教えてほしいです
233名無しさん@そうだ選挙にいこう:2010/04/17(土) 16:46:52
>>217
その手でやってみます
ありがとうございました
234名無しさん@そうだ選挙にいこう:2010/04/17(土) 21:50:22
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 vbYes
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 日付 文字列

あるセルに入力してある日付をVBAで他のセルに転記したいのですが、
転記先セルの表示形式を"ggge年m月d日"としていても、
2010/4/19 と表示されてしまいます。
転記と言っても
sheets(1).cells(1,1).value=sheets(2).cell(2,3)value
ってな感じです。
この場合、コード書いて表示形式を指定スル必要があるのでしょうか?

235名無しさん@そうだ選挙にいこう:2010/04/17(土) 22:47:41
>>234
試してみたけど、ちゃんと「平成22年4月19日」と表示された。
本当に書式がちゃんと設定されているか、プログラムのどこかでうっかり書式を変えてないか、よーく調べてみ。
236名無しさん@そうだ選挙にいこう:2010/04/17(土) 22:48:09
>>231
スクロールエリアが設定されていませんか?
http://www.sharesjp.biz/softwareinfomation/40-excel/74-scrol.html

↑ぐぐったら普通に候補に挙がりましたが。
237名無しさん@そうだ選挙にいこう:2010/04/17(土) 22:50:17
>>231
ツール → オプション → 表示 → ウィンドウ オプション → 垂直スクロール バーをチェック
238236:2010/04/17(土) 22:54:27
スクロールバーの有る・無しだけの問題なら>>237で正解ですね。
239名無しさん@そうだ選挙にいこう:2010/04/17(土) 22:54:55
max関数とlarge関数で質問があります。

=max(a1:a100)

=large(a1:a100,1)
は、

常に同じ値を返すと考えていいですか?
240名無しさん@そうだ選挙にいこう:2010/04/17(土) 23:01:38
DATEDIF関数ってありますよな?
あれって何の英単語をもとにしてできたか考えたけど
最初はDATE DIFINITIONと思ってた。
しかし今ひょっとしてDATE DIFFERENCEという気がしてきた。
この考えはあってるか?
241名無しさん@そうだ選挙にいこう:2010/04/17(土) 23:04:34
>>239
今、試しに日付をやってみたらmax関数の場合は日付を、large関数の場合はシリアル値を、
と違う値を返してきましたよ。
242241:2010/04/17(土) 23:10:04
補足;
シリアル値は同じ(最大)値で、表示上max関数の場合は日付を、large関数の場合はシリアル値を
返してきたってことです。
243239:2010/04/17(土) 23:35:06
>>241
それは単にそのセルにその書式が設定されていただけでは? ゲラゲラ
244名無しさん@そうだ選挙にいこう:2010/04/17(土) 23:39:20
>>241-242
セルの書式設定が引き継がれるかどうか…が、
=max() と =large() の違いなの?

関数のヘルプを見たら、こんなんだったけど。
max 引数の最大値を返す。
large データの中から指定した<順位>番目に大きな値を返す。
245名無しさん@そうだ選挙にいこう:2010/04/17(土) 23:49:22
特定のワークシートを自分で定義したクラスのインスタンスとするには
どうすればいいでしょうか?

【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 ワークシート サブクラス Worksheet 定義 

特定の種類のワークシートをWorksheet クラスのサブクラス
(たとえば、EmployeesTable)として
定義してやりたいんですが、方法がわからず、困っています。

(1) クラス EmployeesTable を Worksheet のサブクラスとして定義する
(2) 各ワークシートのインスタンス(たとえば Sheet1)を EmployeesTable の
インスタンスとして宣言?する

には、どうすればいいでしょうか?

ただし、EmployeesTable のインスタンスとするシートは、
動的に生成しないではじめから用意しておくものとします。

それとも、VBA でこういう方法でプログラムしようとするのは、
筋が悪すぎます?

よろしくお願いします。 m(_ _)m



246名無しさん@そうだ選挙にいこう:2010/04/17(土) 23:59:57
>>239
結果は同じになるけど、MAXの方が速い
247名無しさん@そうだ選挙にいこう:2010/04/18(日) 00:59:39
>>210
>>213
>>214

御回答有難うございました。
248名無しさん@そうだ選挙にいこう:2010/04/18(日) 01:33:48
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 少しだけ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 VBA 個数 カウント

2010/1/1 みかん
2010/1/1 みかん
2010/1/1 りんご
2010/1/2 オレンジ
2010/1/2 りんご
2010/1/2 オレンジ
2010/1/2 オレンジ
2010/1/2 みかん

このように日付順に並んだ商品取引記録があります。
日付ごとに扱った商品の数を数えたいんですが、重複したデータは除いて数えたいです。
上の表だと1月1日はみかんとりんご2種類なので2、2日は3…と数えるには
VBAでどのように書けばいいんでしょうか?


249複乳:2010/04/18(日) 01:34:26
>>245
やったことないから予想だけど。
ブックが持っているのはワークシートのコレクションだから、
EmployeesTableクラスのコレクションを持てるbookクラスを継承した新ブッククラスを作る必要があるとおもう
そしてその新ブックの表示のためにはアプリケーションをいじるかユーザーフォームからということになるだろうな

メソッドなら関数作って呼び出し、プロパティなら変数でも使った方がいいかな
>筋が悪すぎます?
場合によるけど多分悪い
>>240
DATEDIF 語源 の検索結果 約 6,220 件中 1 - 10 件目 (0.27 秒)
DATE DIFference excel の検索結果 約 42,000,000 件中 1 - 10 件目 (0.12 秒)
DATE DIFINITION excel の検索結果 約 24,000,000 件中 1 - 10 件目 (0.25 秒)
MSに聞けば確実。
>>231
再インストールすれば治っただろうし、あながち的外れというわけでもないような
250名無しさん@そうだ選挙にいこう:2010/04/18(日) 06:15:33
difinitionなわけないだろ
理由は辞書を引けばわかる
251名無しさん@そうだ選挙にいこう:2010/04/18(日) 07:22:26
>>248
データがA1から始まって、日付がA列、品名がB列として

Sub a()
  Set sc = Range("A1") '開始セル
  For Each r In Range(sc, sc.End(xlDown).Offset(1))
    If dy <> r.Text Then
      If r.Row <> sc.Row Then
        Debug.Print dy, dic.Count '結果の表示
        Set dic = Nothing
      End If
      Set dic = CreateObject("Scripting.Dictionary")
      dy = r.Text
    End If
    dic(r.Offset(0, 1).Value) = ""
  Next
End Sub
252241:2010/04/18(日) 10:20:51
>>243
適当なセルに複数入れてみた結果、それぞれ関数によって表示が変わりますが。
ゲラゲラする前に試してみようよ。なっ。
253名無しさん@そうだ選挙にいこう:2010/04/18(日) 15:29:04
>>252
「大丈夫」って背中を押してもらわなきゃ満足に関数を使えず、
さらにマジメに答えてくれた人を嘲笑するような人に、それ以上
マジメに答えても損するのはあなただよ。

うんこは触っちゃダメ。
254名無しさん@そうだ選挙にいこう:2010/04/18(日) 16:58:17
>>253
> うんこは触っちゃダメ。
すげぇ いい例えだなww
俺もそれ別のところで使うわwwww
255名無しさん@そうだ選挙にいこう:2010/04/18(日) 17:28:58
値は同じだよな
表示形式が違うだけで

調べてみたところ、MIN関数は選択範囲の一番上のセルの書式を自動的にコピーするようだ
=MIN(A2:A10)とやると、一番小さな数値が結果として返され、A2セルの書式がコピーされる
書式がコピーされるのはMIN関数を入力した瞬間だけで、あとからA2セルの書式を変えても影響を受けない
さらに条件によっては書式がコピーされない場合もある
けっこう複雑だ
256名無しさん@そうだ選挙にいこう:2010/04/18(日) 18:19:11
A1の絶対参照は$A$1ですが、他にも$A1やA$1があります。
特に後者2つ$A1やA$1を含めた絶対参照を使いこなすため
何か数学的コツ、というかExcel学的コツはありますか?
257名無しさん@そうだ選挙にいこう:2010/04/18(日) 18:35:28
>>256
式を下や右にコピペした時に、$が付いているほうは変わらないってだけだろ?
そんなに難しく考えなくてもよくね?
258名無しさん@そうだ選挙にいこう:2010/04/18(日) 19:36:34
1つのシートにたくさん表があって、そのそれぞれの表にオートフィルタをする方法はどうやりますか?
259名無しさん@そうだ選挙にいこう:2010/04/18(日) 21:40:09
>>258
できません
1つのシートにフィルタは1つ
260258:2010/04/18(日) 22:01:22
それは困るじゃないか。
261名無しさん@そうだ選挙にいこう:2010/04/18(日) 22:19:39
教えたまえ
生年月日が「S61.4.19」の文字列の形式で入ってるデータベースがあり、
これらを全部シリアル値に変えるにはどうしたらいい?
262名無しさん@そうだ選挙にいこう:2010/04/18(日) 22:31:28
>>261
その列を選んで「データ」→「区切り位置」→「完了」
ってやると、あら不思議、シリアル値に
263名無しさん@そうだ選挙にいこう:2010/04/18(日) 22:48:27
100枚のワークシートを作るにはどうすればいいですか?
1つ1つ作るのは面倒なので。

あと、各ワークシート名を、別ファイルで用意したA1〜A100の100個のセル内の文字列をそのまま100個のワークシート名として使いたいのですが、
その方法とは?
264名無しさん@そうだ選挙にいこう:2010/04/18(日) 22:53:43
>>263
VBAかマクロ使え
265名無しさん@そうだ選挙にいこう:2010/04/18(日) 23:03:53
>>262
できないぞ

しかし . の区切り記号で区切って3つの数字を取りだし、date関数でその3つをインプットしたらできたわ
266腹乳:2010/04/19(月) 00:03:16
>>265
=date(S61,4,19)
こんな感じにしたと?
Sが入ってる時点で、シリアル値にならないっしょ。

どうせだったら、Ctrl+H(置換)で . を / に全て換えてやれば
関数を使わずにシリアル値に置き換わるぞ。
確認したのは Excel 2003 だけど。
267名無しさん@そうだ選挙にいこう:2010/04/19(月) 00:10:55
>>266
No way.
sははずしたよ。それでSの年号に1925を足して西暦に。

たしかに . → / に変換したらできましたわ。 except I had to delete the other " . " right after "S", because the original data format was, like, "S.62.12.30"
268名無しさん@そうだ選挙にいこう:2010/04/19(月) 00:30:50
文字列に空白がいくつか存在してて、それらをすべて消す方法はありますか?
trim関数だと1個は消えないし。

名簿で名前が「複 乳   太 郎」のような感じで、姓と名の間だけじゃなく苗字の間にも入ってるのを消したいんです。
269名無しさん@そうだ選挙にいこう:2010/04/19(月) 00:39:23
=SUBSTITUTE(SUBSTITUTE(A1," ","")," ","")
270名無しさん@そうだ選挙にいこう:2010/04/19(月) 01:33:19
>>269
Oh, thank you!
271名無しさん@そうだ選挙にいこう:2010/04/19(月) 02:22:34
>>263
作るだけならVBAで簡単にできるけど、
1つのブックに100枚もシートを作ったら
めちゃくちゃ重くなるのでおすすめできない
272名無しさん@そうだ選挙にいこう:2010/04/19(月) 03:52:00
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 excel 図形 反転 文字列

フローチャート作ってるんだけど、
上下反転させた図形にテキストを入力すると文字まで反転する。
どうすれば図形のみを反転させることができるのでしょうか?
273名無しさん@そうだ選挙にいこう:2010/04/19(月) 05:27:00
>>272
図形を反転させたあと、逆さになった文字を右クリック→テキスト効果の設定
3-D 回転でZを180°にします
274名無しさん@そうだ選挙にいこう:2010/04/19(月) 06:44:38
>>273
おお!ありがとうございます!
昔は反転させたくてもできなかったのになぜ2007になったら勝手にと・・・
275名無しさん@そうだ選挙にいこう:2010/04/19(月) 13:15:32
フィルタオプションの設定で
例えばある列項目が200以上かつ偶数のもののみを抽出するにはどうすればいいですか?
276名無しさん@そうだ選挙にいこう:2010/04/19(月) 18:25:12
別の列に「200以上かつ偶数のもののみ」だったら1が入る式をつくれ
277名無しさん@そうだ選挙にいこう:2010/04/19(月) 19:34:41
excelを勉強していますが、配列数式を勉強する利点はありますか?
278名無しさん@そうだ選挙にいこう:2010/04/19(月) 20:07:06
>>277
個人的に配列で遊ぶのは好きだけど、勉強するメリットはない
それより簡単マクロを勉強した方がマシ
279277:2010/04/19(月) 20:26:15
>>278
わかりました。配列あきらめます。
ではおっしゃるとおりマクロを勉強しようと思いますが、いい本ありますか?
近くの本屋がPM9に閉まるので、今日それまでに買えると嬉しいな。
280277:2010/04/19(月) 20:51:16
うぁあ、もう閉まるぅぅ
281名無しさん@そうだ選挙にいこう:2010/04/19(月) 20:51:51
>>279
とりあえず好きなの一冊選べばいいんじゃない?
どうせ一冊だけではよく分からないと思うからw
282名無しさん@そうだ選挙にいこう:2010/04/19(月) 21:48:19
5ケタあるいは6ケタの数字がいっぱいあって、
これらを「 ○○万 」あるいは「 ○万 」と表示させるにはどうしたらいいでしょうか?
計算にも使いたいので文字列には変換しないでちょ
283名無しさん@そうだ選挙にいこう:2010/04/19(月) 21:49:05
1000の位より下の表示は無視です
284名無しさん@そうだ選挙にいこう:2010/04/19(月) 22:06:28
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 是非

以前、>>81で書き込んだモノです。
教えていただきたいのですが、A3シートに入れた数字を
掛け算して、必要個数をA4に表示させるというマクロで
A3に、半角数字以外を入れると、メッセージが出るように
しようと思ったのですが…

if range("A3") <> intenger then
msgbox "数字を入れろ"
End
else
range("A4") = range("A3") * 2
end if

こうかなーっと思ったら、何を入れても数字を入れろと
いう結果で(´・ω・`)
intenger じゃなく、LONGなのかなーっとか思ったりも
しましたが、それだとエラー出てしまうし、秀和社の本では
答えが出ず…です。

申し訳ありませんが、宜しければ、正しいコードを
教えていただけないでしょうか?
285名無しさん@そうだ選挙にいこう:2010/04/19(月) 22:15:26
>>284
前のはよく見てないけど
If IsNumeric(Range("A3").Value) = False Then
MsgBox "数字を入れろ"
End
Else
Range("A4").Value = Range("A3").Value * 2
End If
286名無しさん@そうだ選挙にいこう:2010/04/19(月) 22:35:30
>>285
ありがとうございます!! IsNumeric関数
…よく理解出来て無かったです。
ぐぐったら、ワークシートのマクロばかりでて、
困っていたのですが、これで一つ勉強になりました。
ありがとうございます!!
287名無しさん@そうだ選挙にいこう:2010/04/19(月) 22:41:45
>>275
検索条件には数式が使える。
ある列がA列なら
検索条件範囲の1行目を空白
2行目に=IF(A2>=200,MOD(A2,2)=0)
でいける。
作業列は要らん。
288名無しさん@そうだ選挙にいこう:2010/04/19(月) 22:49:45
>>277
あるよ。
初心者にすげーって尊敬される。
ただしも両刃の剣で分ってる人には馬鹿にされるけどな。
289名無しさん@そうだ選挙にいこう:2010/04/19(月) 23:04:51
>>282
=INT(A1/10000)&"万"
290名無しさん@そうだ選挙にいこう:2010/04/19(月) 23:08:18
245 です。

>> 249
ごめんなさい、お礼が遅くなりました。

> ブックが持っているのはワークシートのコレクションだから、
> EmployeesTableクラスのコレクションを持てるbookクラスを
> 継承した新ブッククラスを作る必要があるとおもう

複雑になりそうですね。

とりあえず、元になるワークシート(例: EmployeesTable) に関数
(例: SelectEmployees)を定義しておいて、それをコピーして使おう
と思っているのですが、任意のワークシートが、当該の関数(この場合
SelectEmployees)を持っているかどうかを、調べるにはどうすれば
よいのでしょうか?

ワークシートをユーザ定義のクラスに属させることができれば、
クラス名を調べることでできそうなのですが、無理っぽいので、
別に方法があれば、と思うのですが…。

現実解としては、特定のセルに特定の文字列が入っているかとか、
シート名のパタンとかで判断することになりそうなのですが…。






291名無しさん@そうだ選挙にいこう:2010/04/19(月) 23:16:37
>>289
それ、だめです。
「計算にも使いたいので値はそのままにして変換しないでちょ」って書いてたでしょ。
292282:2010/04/19(月) 23:18:07
セルの表示形式のユーザ定義を使って、どうにかできないのかにゃ?
293名無しさん@そうだ選挙にいこう:2010/04/19(月) 23:48:41
0"."0000"万" あたりで勘弁してください
294282:2010/04/19(月) 23:56:34
>>293
それだと下のようになるではないか

1.2345万
5.4621万
45.6546万
12.3224万
0.1564万
295名無しさん@そうだ選挙にいこう:2010/04/19(月) 23:59:46
上の例だと、このようにしたい

1万
5万
46万
12万
0万
296名無しさん@そうだ選挙にいこう:2010/04/20(火) 00:35:08
変換しないで 万単位は難しいかもね
3桁ごとなら 書式設定( 0,"千" )で出来るけど
297名無しさん@そうだ選挙にいこう:2010/04/20(火) 01:02:40
>>291
この例だとA1セルの内容は変わってないから、そっちで計算すればいいじゃん
298名無しさん@そうだ選挙にいこう:2010/04/20(火) 01:03:57
書式で万単位にすることはできない
作業列を使ってデータを2種類入れておくしかない
299名無しさん@そうだ選挙にいこう:2010/04/20(火) 03:33:03
>計算にも使いたいので文字列には変換しないでちょ

意味がワカランw
最後の「ちょ」は何ですか?
300名無しさん@そうだ選挙にいこう:2010/04/20(火) 04:04:38
>>282
>計算にも使いたいので文字列には変換しないでちょ
なんだから
=A1/10000 として書式を 0"万"

>>291 はあえて無視する
301名無しさん@そうだ選挙にいこう:2010/04/20(火) 06:21:46
>>290
シートがそれぞれ関数を持つんじゃなく標準モジュールに書いて
シートでは関数を呼び出すだけにすればいいんじゃないの?

どのシートが呼び出したかは引数にシートを渡してやれば
Isでシートを調べる事はできるっしょ

それと、この事だけど
>ワークシートをユーザ定義のクラスに属させることができれば

Class_InitializeプロシージャでWorksheet型かSheet型で定義した変数に
Setするんじゃダメなのか?

まぁ、やりたい事がよく分からんから全然的外れな事を言ってしまったかも知れんが
302名無しさん@そうだ選挙にいこう:2010/04/20(火) 09:11:29
【1 OSの種類         .】 Windows vista
【2 Excelのバージョン   】 Excel 2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 エクセル・VBA・並び替え 等々

質問です。今回故あってVBAを使う作業をすることになったんですが、ほとんどわかりません。
初心者同然で申し訳ないんですが、作業量が膨大なので、VBAで教えてください。

ある体育競技のタイム集計をすることになりました。データは、
A列:名前
B列:種目(数字で表してある)
C列:タイム
D列:年齢
といった具合です。これを、

@種目別に並び変えて(数字を昇順にして)
A各種目内でタイムの速い順に並び変えて
Bもしタイムが同じであれば若い順に並び変えて
C最後にそれをもう一度任意の順に並び変える(速いほうから9人ずつのグループを作り、各グループ内で速いほうから9,8,5,4,1,2,3,6,7の順に並び替えます)

といった作業をしたいです。並び替えの優先順位は、種目>タイム>年齢だということです。
一つの列のデータの小さい(or大きい)順に、行ごと並び変える方法を教えてください。あと、種目別に並び変える際には、各種目間に空白の行があるとわかりやすいので、それもできれば追加で教えてください。

本も買ってみて基本的なことは理解したんですが、VBAって指示の種類が豊富でなかなか自分の欲しい情報がみつからないですね…
いきなり初歩的な質問ですみませんが、よろしくお願いします。
303名無しさん@そうだ選挙にいこう:2010/04/20(火) 09:19:21
>>295
表示形式 [>10000]#"万"CtrlとJ同時押し###0;"0万"
配置 折り返して全体を表示する
これで大体いけるんじゃないか?
ただし行の高さが高かったりフォントサイズが小さかったりしたらNG
またマイナスも0万となるから適宜変更汁
304名無しさん@そうだ選挙にいこう:2010/04/20(火) 09:30:03
0"万"CtrlとJ同時押し###0で良かったか
305複乳:2010/04/20(火) 09:39:42
>>302
マクロの記録は使った?
それでも分からなかったらも一度質問してー
306名無しさん@そうだ選挙にいこう:2010/04/20(火) 11:07:29
>>302
「並べ替え」の「ユーザー設定」で優先順位をB列、C列、D列の順番にすればいい
これをVBAでやりたいんならマクロの記録

手順(4)の意味がよくわからない
人数が9で割り切れないときはどうするの?
307名無しさん@そうだ選挙にいこう:2010/04/20(火) 12:22:42
>>306
たぶん一番速い人が真ん中に来るその体育競技とは水泳なのでしょう。
その為に順番指定する手順Cが必要なのだろうな。
308名無しさん@そうだ選挙にいこう:2010/04/20(火) 12:37:14
VLOOKUP関数で、最初の引数のキー値を、表の左端ではなくそのつどいろんな列で検索したいことが多々あります。
そういうときはどうすればいいですか?
309名無しさん@そうだ選挙にいこう:2010/04/20(火) 12:42:28
泣く
310名無しさん@そうだ選挙にいこう:2010/04/20(火) 12:46:47
>>308
"使えねぇ〜な。"
とつぶやく。
311308:2010/04/20(火) 13:12:28
>>309-310
原子爆弾を製造してExcel会社に落とす、
という方法じゃだめですか?
312名無しさん@そうだ選挙にいこう:2010/04/20(火) 14:09:05
MATCHとINDEX
313308:2010/04/20(火) 14:31:14
>>312
そんなややこしいことはしたくないんだ

いま思ったけど、LOOKUP関数ってまさにこのためにあるって感じでしょうか?
314名無しさん@そうだ選挙にいこう:2010/04/20(火) 15:09:26
とりあえずオートフィルタで。
315308:2010/04/20(火) 15:40:36
>>314
通ですね
凡人なら「とりあえずビールで」と言うところですよ
昔の梅酒好きの彼女は「とりあえず梅酒で」とよく言ってみんなを驚かせてたけどな
316302:2010/04/20(火) 16:32:43
>>305
>>306
ありがとうございます。並び替えやってみました。
こりゃ便利ですね。これなら特にVBAにこだわる必要はなさそうです。

>>306
その場合は、余った数だけでグループを作ります。もっとも、10人余ったら9:1ではなく5:5にするとか、多少ややこしいですが、手作業でするなら特に問題ではありません。
あとは、簡単に任意の順番に行ごと並び替えができればいいんですが、何かいい方法がありましたら、教えてください。

>>307
特に必要だとも思わなかったので伏せましたが、そうです水泳です。

質問ばかりで申し訳ないですが、よろしくお願いします。
317児玉清:2010/04/20(火) 16:48:40
たくさんのセルに複雑な関数がいっぱい入ってて
それらをすべて確かめるためにメモ帳に貼り付けたくなりました。
普通に貼り付けると値になるし、できません。

その方法とは?
318複乳:2010/04/20(火) 17:05:34
>>316
1-3はもうできたとみていいのかな
E2に
=IF(B2<>B1,9,IF(E1=9,8,0)+IF(E1=8,5,0)+IF(E1=5,4,0)+IF(E1=4,1,0)+IF(E1=1,2,0)+IF(E1=2,3,0)+IF(E1=3,6,0)+IF(E1=6,7,0)+IF(E1=7,9,0))
下にオートフィル、E列を選択してコピー、値で貼り付け
E列で並びかえ
319名無しさん@そうだ選挙にいこう:2010/04/20(火) 17:40:22
>>317
>普通に貼り付けると
って、もう解っているんだろ。
320複乳:2010/04/20(火) 18:11:33
>>317
数式バーをドラッグしてコピー
321名無しさん@そうだ選挙にいこう:2010/04/20(火) 19:06:19
オプションで数式表示
322名無しさん@そうだ選挙にいこう:2010/04/20(火) 19:32:41
>>313
全然的外れ
VLOOKUPの完全一致のFALSE検索の代用にはならない。
検査範囲が昇順にソートされてれば工夫して完全一致検索もできるけどな。
323児玉清:2010/04/20(火) 19:48:09
>>321
そのとおり!

321さん、お見事!! パリそしてニースにいらしていただきます!! おめでとう!! 良かった!!
324児玉清:2010/04/20(火) 19:52:26
さらに321さんにはトップ賞といたしまして(複乳さんのおっぱい)を合わせてお持ち帰りいただきます

そして、今日ごレスいただきました他2名様>>319さん、>>320さん、には(果物いっぱい)をお持ち帰りいただきます。
そして、今日見事パリ行きとなられました>>321さんを応援していただいた方には(500円でマスターできるExcel入門書)をプレゼントいたします

321さん、見事パリ行きを射止めたことをお伝えして、また来週この時間パリがあなたを待っております!! ごきげんよう!! さよなら!!
325名無しさん@そうだ選挙にいこう:2010/04/20(火) 22:22:28
マクロを勉強しようと思い本屋に見に行ったのですが
ちゃんとした本はつまんないことしか書いてありませんでした。

そういうのではなく、マクロ利用で便利な機能がたくさん紹介されててすぐ使えるような本ってないですか?
マクロ自体で何ができるかすら全くみえてないので、最初は便利な機能の使用例をたくさん見る、というところからスタートしたいので。

さて、その本の名は?
326名無しさん@そうだ選挙にいこう:2010/04/20(火) 22:47:39
時間のシリアル値で
表示を 「hh.hh 時間」にするにはどうしたらいいですか?

つまり、1時間20分だったら、1.33時間としたいのです。
327名無しさん@そうだ選挙にいこう:2010/04/20(火) 22:48:35
328名無しさん@そうだ選挙にいこう:2010/04/20(火) 22:49:19
あ,直リンしちゃったすまん・・
329名無しさん@そうだ選挙にいこう:2010/04/20(火) 23:06:03
>>326
A1に1:20と打ってあれば
=A1*24
表示形式 G/標準"時間"
小数点下2桁で四捨五入するなら 0.00"時間"
330名無しさん@そうだ選挙にいこう:2010/04/20(火) 23:10:18
>>326
書式だけでは無理
=TEXT(A1*24,"00.00 時間")
みたいに数式を別セルに入れる必要がある
331児玉清:2010/04/20(火) 23:11:11
>>327
結構!
しかし、そこはマクロについてあまり詳しく書いてないようですね。
また明日本屋で探すかな。

惜しくもパリ行きなりませんでしたが、また明日この時間パリがあなたを待っております!! ごきげんよう!! さよなら!! 残念!!
332複乳:2010/04/20(火) 23:43:28
>>325
実務的なことをやりたいならオフィス田中 インストラクターのネタ帳 辺りで具ぐれ
曲芸をやりたいならニコニコ動画でエクセル、excel、vba このどれかで検索
プログラムは根本的に「何をやりたいか」が無いと覚えられないと思ったほうがいいよ
あと本は知らん。ついでにこのスレの連中は本を読んでない人が多い気がする
333名無しさん@そうだ選挙にいこう:2010/04/21(水) 00:24:50
どこに書いてあるか、本は探すのがめんどくさい
ぐーぐる使った方が早い
334複乳:2010/04/21(水) 00:30:04
だのう。とっつきにくいもの(プログラムとか)はあったほうがいいかもしれんが
エクセルは詰まったらその都度調べた方が早いよな
335名無しさん@そうだ選挙にいこう:2010/04/21(水) 07:44:33
本は読まないなぁ
検索すると何でも誰かが過去に挑戦してくれてるからな

>>303-304 Ctrl+J知らなかった、ありがと
336名無しさん@そうだ選挙にいこう:2010/04/21(水) 12:11:23
本からだとサンプルを打ち込むのが面倒
WEBならコピペ一発
337名無しさん@そうだ選挙にいこう:2010/04/21(水) 20:57:47
よろしくお願いします。
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 同じ 数字 入力 桁 増

入力した数字がダブって反映されます。
例) 4 と入力すれば 44
   45 と入力すれば 445
表示も44や445になり、ユーザー設定は標準のままです。
他のシートやファイルは問題なく、ひとつのシートにだけ起こります。
元に戻す方法(普通に入力できる方法)を教えて下さい。
338名無しさん@そうだ選挙にいこう:2010/04/21(水) 21:00:53
そのシートを捨てる
339名無しさん@そうだ選挙にいこう:2010/04/21(水) 21:02:07
訂正
ユーザー設定ではなくセルの書式設定でした。
340名無しさん@そうだ選挙にいこう:2010/04/21(水) 21:02:45
341名無しさん@そうだ選挙にいこう:2010/04/21(水) 21:31:09
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 是非

教えて下さい(´・ω・`)

SHEET2 に A1〜A6 A8〜A10に、情報があって
A2に名前、A3〜A6に点数、A8〜A10に、○、▲、□って感じの
文字列があると思ってください。
で、そんな感じのがズラーって並んでて、ボタンを押したら
対象になる人だけをSHEET1に表示させるようにしようと
思ってます。

で、シート2に、オートフィルターをかけて、可視範囲を
コピーしてシート1に…ってすると、A8〜A10だけ
コピーされません。
こうした場合は、どうしたらいいんでしょうか?
真ん中のA7の空欄は、表製作者の意向で、文字を入れるとか
無しなのです…(´・ω・`)

SUMIFの関数みたいに、検索条件から値を返すとか出来たら
なんとかしようもあるんですが、VLOOKUPでやろうとしたら
なんかエラーが出て返せませんし(´・ω・`)
最悪、FindとOFFせっとで探して、それをコピー&ペースト
させるしかないのでしょうか?

申し訳ありませんが、ご教授をお願いいたします。
342複乳:2010/04/21(水) 23:26:03
>>341
空白があるとダメなら、何か入力してしまえば?
オートフィルタの処理終わらせたあとに削除とか。
私だったらfornextでやる。横向きにループさせて同じだったらコピー
343名無しさん@そうだ選挙にいこう:2010/04/21(水) 23:49:26
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 不可

C列に管理番号があり、E+4ケタの数字が入っていました。
従来は、管理番号がE9999になったらE0001に戻していましたが、
今年度から新規の番号はE01+4ケタの数字に変わりました。
このため、昇順で並べ替えをすると、最新の番号が
上方へ行ってしまいます。

こんな感じに並び替えるには、どうすればいいでしょうか?

E9996
E9995
E9991
E010001
E9993

 ↓

E9991
E9993
E9995
E9996
E010001
344名無しさん@そうだ選挙にいこう:2010/04/21(水) 23:51:55
>>343
番号があるセルをA1〜とすると、B列のセルにLEN関数入れて文字数を表示して、
B列→A列で昇順にする
345複乳:2010/04/21(水) 23:52:28
>>343
ない。作業列を使う
D1=RIGHT(C1,LEN(C1)-1)*1
下にオートフィル
でD列で並び替え。
346名無しさん@そうだ選挙にいこう:2010/04/22(木) 07:13:45
>>317
Ctrl + Shift + @
(正確に言うと、Ctrl + バッククォート [ ` ])
347名無しさん@そうだ選挙にいこう:2010/04/22(木) 19:16:12
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】
【4 VBAでの回答の可否】
348複乳:2010/04/22(木) 19:17:02
>>347
悪い、わからん・・
349名無しさん@そうだ選挙にいこう:2010/04/22(木) 19:25:30
【1 OSの種類         .】 Windowsxp
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい (初級レベル)
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 Googleやヘルプでの検索キーワード

a1から最大11列(毎回変動する)の見出し行に対し、
最大10行程度(毎回変動する)の文字列(英数文字)の表があります。

A1   B1  C1  …
 あ  い  う  …
aaa  ddd  ggg  …
bbb  eee  hhh  …
ccc  fff   iii   …
(空白)  …   … …

これを下記のように並び替えて(空白セルは無視して次の列に)
指定のセルに転記したいのですが、どのようにすれば良いでしょうか?

aaa あ
bbb あ
ccc あ
ddd い
eee い
ffff い
… …
350名無しさん@そうだ選挙にいこう:2010/04/22(木) 19:34:32
上の書き込みは間違いです、文章作成中に誤って書き込んでしまいました
申し訳ありません
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】いいえ
【4 VBAでの回答の可否】不可
グラフを作成したいのですが、使用するデータが2種類あります
片方は理論値(x=1.y=2  x=2.y=4....といったもの)
もう片方は実験値(x=1.13.=2.28....)といったもので
二つの表に纏めてあります。
この二つの表からグラフを作成しようとすると、どうやっても
両方、ないし片方の数値yがx軸と対応しません。
(片方のグラフが、明らかに表と比較して正しくない位置にある)
二つの表のxを、同時にx軸に設定出来ていないのが原因かと思われるのですが
解決法をご存知の方、よろしければご解答お願いいたします
351複乳:2010/04/22(木) 19:37:51
>>349
空白は必ず最終行と言うことでいいかな?
352名無しさん@そうだ選挙にいこう:2010/04/22(木) 19:49:23
>>350
A列に両方のX、B列に理論値のY、C列に実験値のYを並べる。
こんなふうに2つのデータを縦並びにすればいい。
A   B   C
X   Y
X   Y
X   Y
X       Y
X       Y
X       Y
353名無しさん@そうだ選挙にいこう:2010/04/22(木) 20:10:08
>>340
ありがとうございました。
ファイル閉じて1日経ったら元に戻っていました。
次に同じ状態になった時に試してみたいと思います。

>>338
ありがとうございます。
どうにもならなくなったら捨てます。
354名無しさん@そうだ選挙にいこう:2010/04/22(木) 20:20:20
>>352
解決しました。
大変助かりました、ありがとうございます!
355名無しさん@そうだ選挙にいこう:2010/04/22(木) 20:26:58
>>351
はい、そうです。
よろしくお願いします…。
356343:2010/04/22(木) 20:35:27
>>344-345
ありがとうございます。
おかげさまで上手くいきました。
357複乳:2010/04/22(木) 20:41:08
>>356
kakidasi = 15
の15が書き出す列。O列かな

Option Explicit
Sub fukuku()
Dim gyo, retu, kakidasi, sex, i, k, unko As Integer
retu = Range("M1").End(xlToLeft).Column
kakidasi = 15
sex = 1
For i = 1 To retu
gyo = Cells(20, i).End(xlUp).Row
Range(Cells(sex, kakidasi), Cells(sex + gyo - 2, kakidasi)).Value = _
Range(Cells(2, i), Cells(gyo, i)).Value
sex = sex + gyo - 1
Next
For unko = sex To 1 Step -1
If Cells(unko, kakidasi) = "" Then
Cells(unko, kakidasi).Delete Shift:=xlUp
End If
Next
End Sub
358複乳:2010/04/22(木) 20:42:26
うおアンカーミスっあ
>>357>>355
359名無しさん@そうだ選挙にいこう:2010/04/22(木) 21:08:27
>>357
dd
で、349の例示ではわかりにくかったのかも知れませんが
下記のようにできるとなおパーフェクトなのですが…どうでしょうか?

巨人   阪神
坂本   マートン
松本   平野
小笠原  鳥谷


坂本   巨人
松本   巨人
小笠原  巨人
マートン 阪神
平野   阪神
鳥谷   阪神
360複乳:2010/04/22(木) 21:17:48
あ、わすれてた
しばし待て
361複乳:2010/04/22(木) 21:20:49
こんなもんかねえ
Option Explicit

Sub fukuku()
Dim gyo, retu, kakidasi, sex, i, k, unko As Integer
retu = Range("M1").End(xlToLeft).Column
kakidasi = 15
sex = 1
For i = 1 To retu
gyo = Cells(20, i).End(xlUp).Row
Range(Cells(sex, kakidasi), Cells(sex + gyo - 2, kakidasi)).Value = _
Range(Cells(2, i), Cells(gyo, i)).Value
Range(Cells(sex, kakidasi + 1), Cells(sex + gyo - 2, kakidasi + 1)).Value = _
Cells(1, i).Value
sex = sex + gyo - 1
Next
For unko = sex To 1 Step -1
If Cells(unko, kakidasi) = "" Then
Range(Cells(unko, kakidasi), Cells(unko, kakidasi + 1)).Delete Shift:=xlUp
End If
Next
End Sub
362名無しさん@そうだ選挙にいこう:2010/04/22(木) 21:31:05
>>361
おお神よ…!
感謝に絶えませぬ…。

書き出しのセル位置(例えばA列の12行目)を設定するには
変数を
363名無しさん@そうだ選挙にいこう:2010/04/22(木) 21:31:46
途中で送信してしまった

変数を弄ればよいのですね。
ここはちょっと頑張ってみます。

有り難うございました!!
364名無しさん@そうだ選挙にいこう:2010/04/23(金) 09:40:26
【1 OSの種類         .】 Windows**
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 データ 抜き出し 並び替え リンク

1      1234
2  ⇒  5678
3      9...
4
5       一列に並んだデータを4コずつ抜き出して並べたいです。
6       初歩的なことなのかもしれませんが教えてください。  
7       すみません。
8
9
.
.
365364:2010/04/23(金) 09:48:00
記入漏れです
【1 OSの種類         .】 Windows vista

すみませんすみません。
366複乳:2010/04/23(金) 10:29:50
>>364
b1=INDIRECT("r"&(ROW()-1)*4+COLUMN()-1 &"c1",0)
CD列にオートフィル、下にオートフィル
367364:2010/04/23(金) 10:32:31
>>366
ありがとうございます。
本当に助かりました。
すみませんすみませんすみません。
368名無しさん@そうだ選挙にいこう:2010/04/23(金) 11:32:04
>>361
その変数宣言だと、unkoだけがIntegerで他が全部Variantじゃねえか。
ちゃんと宣言しろよ。
369複乳:2010/04/23(金) 11:42:17
あれそうなのか。すまん
最近Cばっか触ってたせいか混同しちまった
370名無しさん@そうだ選挙にいこう:2010/04/23(金) 11:59:33
Visual Basicはどうしてそう呼ぶかと思っていたら
所詮Basicだからだったな
何か新しいものを期待していたおれが悪かった
371名無しさん@そうだ選挙にいこう:2010/04/23(金) 12:06:34
>>369
ホームレスがまた知らない道を教えてるのか
浅ましいことだな
いいかげんにしろ
372複乳:2010/04/23(金) 12:14:23
たどり着けたしイイジャンw
373名無しさん@そうだ選挙にいこう:2010/04/23(金) 12:22:10
和んだ(´ω`)
374名無しさん@そうだ選挙にいこう:2010/04/23(金) 12:53:00
>>372
お前は役に立ってないだろうが
ボケ
375複乳:2010/04/23(金) 13:06:05
>>374
君、面白いから私の突っ込み役として常駐しなさい
376名無しさん@そうだ選挙にいこう:2010/04/23(金) 13:18:21
ついに複乳さんに助手が・・・?
377名無しさん@そうだ選挙にいこう:2010/04/23(金) 13:39:35
>>375
さすがホームレスだ
虚勢を張ることくらいしか出来ないらしい
378名無しさん@そうだ選挙にいこう:2010/04/23(金) 13:46:19
>>377
いや、あらゆる環境逆境にさえも適応できるんだよ。
379名無しさん@そうだ選挙にいこう:2010/04/23(金) 14:24:51
複乳様は相変わらずINDIRECT好きだねぇw
まぁがん枯れ
380名無しさん@そうだ選挙にいこう:2010/04/23(金) 14:42:33
>>379
何を言いたいの?
揮発性関数のことならINDEXも同じだろ?
381名無しさん@そうだ選挙にいこう:2010/04/23(金) 19:25:54
複乳さんは神だお!
382名無しさん@そうだ選挙にいこう:2010/04/23(金) 19:49:55
>>380
Excel95使ってるの?
97からは違うぜよ
383名無しさん@そうだ選挙にいこう:2010/04/23(金) 20:53:28
セルを選択して右下の四角をドラッグアンドドロップして連続データを作成すると
再計算中と出て長く待たされますので計算量を少なくしたいです。
そのセルに入ってる計算式はオリジナルの関数なんですが
public function a() as string
Aの処理
Bの処理
end function
となってて このAの処理はドラッグアンドドロップする全てのセルで結果が共通なので
最初の1セル目だけ計算して2つ目以降のセルでは結果を使いまわすだけにすれば計算量が減らせますが
どうすれば良いでしょうか
エクセル2002です よろしくおねがいします。
384名無しさん@そうだ選挙にいこう:2010/04/23(金) 21:07:58
>>383
一個の配列数式にすりゃいいんじゃねーの。
配列数式をフィルコピーするDQNもいるけどな。
385名無しさん@そうだ選挙にいこう:2010/04/23(金) 21:08:54
ぱっと思いつくやり方は
Aの処理をa()の外に出して 最初のセルかどうかを判定して最初のセルのときだけ
Aの処理を実行してあげれば良いと思うのですが
ドラッグアンドドロップするときの最初のセルかどうかを判断するにはどうすればいいでしょうか
386383:2010/04/23(金) 21:12:33
>>385は私です

>>384
配列数式というのは初めて知りました
今から調べてみます
387名無しさん@そうだ選挙にいこう:2010/04/23(金) 21:13:41
具体的にどんなことやりたくて、どんな関数書いてるか晒してみたら?
もっといい方法があるかもよ?
388複乳:2010/04/23(金) 21:15:28
>>385
×ドラッグアンドドロップ
○ドラッグ
そしてその処理をオートフィルという

あとstring型からして配列数式は使えないと思うが・・
Aの処理がなにかわからんとどうしようもないかなぁ
389名無しさん@そうだ選挙にいこう:2010/04/23(金) 21:20:31
>>388
public function a() as string()
として配列数式対応にすればいいだけの話。
もちろん関数の中身は配列が扱えるように書く必要があるけどね。
390名無しさん@そうだ選挙にいこう:2010/04/23(金) 21:34:30
だいたい>>383の関数は引数がないみたいだが、DQNの定番の
Application.Volatileを書いてる関数なんじゃないのか?
391名無しさん@そうだ選挙にいこう:2010/04/23(金) 21:46:17
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 Hyperlink|ハイパーリンク excel|エクセル 複写|コピー できない

エクセルにはハイパーリンク機能があって、=hyperlink(Cell-1,Cell-2) でリンクは作れるものの、
「地球+クリップ」のアイコンで作成したハイパーリンクのように他のセル内容に依存しない状態に変更させる方法が分かりません。

何段階もの階層と複数のフォルダーに入っている5万個ほどのファイルリストはリダイレクトで作成したのですが、
できればこのファイルリストを元にして、ハイパーリンクを付けて台帳のようなものを作成したいと思います。

WSHを使うことでエクセルを操れると知ったので参考書も購入して読んでいるところですが、巧い方法がありましたらお願いします。
392349:2010/04/23(金) 22:02:51
>>368,369
あんまり意味がわかってないのだが、
後学の為にも改訂する必要があるならレスってくれると嬉しい…。
393名無しさん@そうだ選挙にいこう:2010/04/23(金) 22:11:16
>>392
プログラムは見てないけど、
Dim gyo As intger, retu As intger, kakidasi As intger・・・・
みたいにする。

個人的にはIntgerよりLongの方がいい気もするけど、Intgerでエラーが起きないんだったらw、別に構わないか・・・
394複乳:2010/04/23(金) 22:23:58
>>389 んな方法があるのか・・
>>392 あるといえばある、無いといえば無いんだよなー
データ型を知ってる前提で話すと、368だとunko意外の変数はvariant型になる
variantはメモリの占有サイズが大きい上、勝手に文字列・数値の変換したりと場合によっては不具合を起こす。
ただ小さいマクロ、それこそ>>361程度なら不具合も起こそうと思わない限り起こらないので
(kakidasi = "a" とすると型の不一致エラーが出るぐらい)
宣言なんて適当でいいという見方もある
>>393
癖でなー。VBAだと自然にinteger使ってしまう。integer使うといかにもvba臭くて、良い。
395名無しさん@そうだ選挙にいこう:2010/04/23(金) 22:39:48
>>386
配列数式を調べたって、最近はほとんど間違った使い方しかみないから無駄だと思う。
396名無しさん@そうだ選挙にいこう:2010/04/23(金) 22:56:41
>>394
俺は、Access VBA もやるもんで、小数扱わないなら
Dim a As Long てな具合で長整数型(Long)だな。
397名無しさん@そうだ選挙にいこう:2010/04/23(金) 23:36:19
368
>その変数宣言だと、unkoだけがIntegerで他が全部Variantじゃねえか

Variantで、何か不具合でも?
398名無しさん@そうだ選挙にいこう:2010/04/23(金) 23:43:45
絶対に最善手を指さないことを信条とする人いるよねぇ。
399複乳:2010/04/24(土) 00:22:15
働き出すと程々が最善という癖がつくんだよな
うちの社内にも自分が納得行くまでゴミ作ってる人もいるけど

400名無しさん@そうだ選挙にいこう:2010/04/24(土) 00:33:27
>>397

全部variantで問題ないのにわざわざ1つだけintegerにするのが無駄だって話
401名無しさん@そうだ選挙にいこう:2010/04/24(土) 02:59:00
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002(OfficeXP)

46行が1組になったデータがあります。
2行目がタイトル行で、3〜47行目に、49行目以降のデータを掻き集めています。
(46行が1組なので、2組目は48行目がタイトル行、3組目は94行目がタイトル行)
データ計算は、I〜M列、N〜S列、U〜Z列の3回です。

配列数式にしたら、数値を入れるたびに関連したセルが書き換えられて
非常に時間が掛かるのと、合計値が0のときは空白にしておきたいので、
数値を入れてからマクロで計算することにしました。

一応、動作確認はできましたが、あまり綺麗な書き方ではないので、見た目に
綺麗な書き方があればご教示ください。I〜M列、N〜S列、U〜Z列は
それぞれ単独で計算し、今回はI〜M列の例だけ書きます。

A = ((Range("A65536").End(xlUp).Row - 1) / 46) - 1 '組数
For j = 9 To 13 'I〜M列
 For i = 3 To 47 '3〜47行
 Y = 0
  For k = 1 To A
   KK = 46 * k + i
   Y = Y + Cells(KK, j)
  Next k

  If Y <> 0 Then
   Cells(i, j) = Y
  Else
   Cells(i, j) = ""
  End If
 Next i
Next j
402名無しさん@そうだ選挙にいこう:2010/04/24(土) 04:10:37
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 SUMIF,SUMPRODUCT,複数条件

  A  B    C
  数 条件@ 条件A
1 10  ●    月
2 20  ●    火
3 30  ×    火
------------------
4 答  ●    火

上記のようなデータで、条件@が●、かつ条件Aが火の
数の合計を出すために、答に =SUMPRODUCT((B1:B3=B4)*(C1:C3=C4)*(A1:A3))
の数式をいれたのですが、仮に条件Aはなしにする場合(月も火も●のものは合計する)
これをすぐに出したい場合は、答の数式は最初の状態から組みなおすしかないのでしょうか。
(理想はC4を空欄にしたら、自動で変わるような仕組みはないでしょうか。)
IFを組み合わせるとか、いろいろと考えたのですが、どなたか良い方法が
ありましたらお願い致します。
403368:2010/04/24(土) 08:18:40
>>397,398
Variantだからダメって言うのじゃないし、VBAごときで最善なんてどうでもよい。
>>361の書き方は、全部をIntegerにしたいのに失敗しているとしか思えないでしょ。
人に教える側の記載だから、間違わずにちゃんとした形式で書けよ、ってことだよ。
404名無しさん@そうだ選挙にいこう:2010/04/24(土) 08:31:27
まぁ、宣言の仕様は勘違いして覚えたら面倒な事ではある。
405名無しさん@そうだ選挙にいこう:2010/04/24(土) 09:09:34
>>402
そういう時はDSUM使えよ。
それにお前のSUMPRODUCTの使い方間違ってるぞ。
=SUMPRODUCT((B1:B3=B4)*(C1:C3=C4),A1:A3)
としないと。
お前の式は=SUM((B1:B3=B4)*(C1:C3=C4)*(A1:A3))の配列数式と同じだ。
406名無しさん@そうだ選挙にいこう:2010/04/24(土) 10:27:13
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 EXCEL 行 揃える

質問を画像で準備しました。
よろしくお願いします。
http://www.odnir.com/cgi/src/nup46816.jpg
407複乳:2010/04/24(土) 10:41:25
>>406
A4=(B4<>"")*1+MAX($A$1:A3)
D4=IF(C4<>"",VLOOKUP(E4,A:B,2,0),"")
E4=(C4<>"")*1+MAX($E$1:E3)
下にオートフィル
例文とB・D列が入れ替わるがそこはテキトーになんとかしてくれ
408名無しさん@そうだ選挙にいこう:2010/04/24(土) 11:32:07
すいません、超初心者です。

エクセル2007でデータからグラフを作成しようとしたところ、軸の部分が
データから正確に反映出来ません。対処方法を教えていただけないで
しょうか?色々とググってみたのですが、どうにもなりません・・・(´;ω;`)ブワッ

データは↓みたいな感じです


1月 10000円
2月 30000円
3月 40000円

のような単純なデータなんですが、横軸に月名は出ています。問題は縦軸で
金額が\1,\0みたいな感じになっています。どうにかお願いします。
409複乳:2010/04/24(土) 13:26:48
>>408
金額部分は書式設定で通貨を選ぶ
セルには「10000」とだけ入力

410名無しさん@そうだ選挙にいこう:2010/04/24(土) 13:33:47
408です
書式設定は通貨で記入していました。どうにも原因が分からないので週明け職場にて聞いてみます。

レスありがとうございました。
411402:2010/04/24(土) 13:49:29
>>405
ありがとうございます。やっぱDSUMですかね。
DSUMだと5行目から同じように検索条件を増やしていくと
Criteriaの条件用で、項目名を1行づつ用意しないといけなくなるのでかさばるかなと・・思って躊躇してました。
Criteriaの条件用の項目名行を一つで使いまわしていくこと(Criteriaにいれる項目名と条件内容を離れた行とすること)はできないのでしょうか。。
412複乳:2010/04/24(土) 14:07:10
>>402
C5に1を入れると>>402通り、1以外だとC列の条件を無視する
=IF(C5=1,SUMPRODUCT((B1:B3=B4)*(C1:C3=C4)*(A1:A3)),SUMPRODUCT((B1:B3=B4)*(A1:A3)))
条件多くなるなら工夫しなきゃならんけど
413名無しさん@そうだ選挙にいこう:2010/04/24(土) 14:24:42
>>411
DSUMの条件はフィルタオプションと同じで縦にOr、横にAndだ。
だからCriteriaの条件用の項目名行を一つで使いまわすことはできない。
ってかお前のやりたいことってピボットテーブルで出来るんじゃないのか?
414名無しさん@そうだ選挙にいこう:2010/04/24(土) 14:54:44
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 勉強中
【4 VBAでの回答の可否】 ?
【5 検索キーワード     】 OfficeOnlineなど

Excelの質問というよりOfficeのヘルプに関する質問なんですが、
ExcelでF1を押してヘルプを出して、検索のところで
Office Online のコンテンツの中の開発者リファレンスを選んでも検索ができず、目次もダウンロード中で表示できません。
Office Online のコンテンツの中のExcelヘルプなどほかの項目や、
このコンピュータ上の のコンテンツの中の開発者リファレンスでは検索できます。

Office Online のコンテンツの開発者リファレンスを使うには何か設定があるのでしょうか?
415名無しさん@そうだ選挙にいこう:2010/04/24(土) 19:27:26
autofilterに関するトグルスイッチ式のマクロについての質問です。
数年前に随分苦労して作った記憶があるのですが、・・・
今、作るとできません。
よろしく。

416複乳:2010/04/24(土) 19:42:59
テキトーに答えてみる
>>414
サーバーの調子がわるいのかも
下のリンクテキトーにたどれば辿り着けるかもしれん
ttp://msdn.microsoft.com/ja-jp/office/aa905363.aspx
>>415
あ、そう・・
417415:2010/04/24(土) 22:17:31
>>416

自己解答を書く気も無くなったわwww
418名無しさん@そうだ選挙にいこう:2010/04/25(日) 02:54:15
【1 OSの種類         .】 Windowsvista
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 使えない
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 正直、何で検索していいか分かりませんOTL

エクセルのファイルをユニコードテキストで出力すると
文字列に””が付いてしまいます。
この”を付けずにテキストに出力する方法を教えて下さい。
419名無しさん@そうだ選挙にいこう:2010/04/25(日) 06:36:30
>>417 自ら質問も無効化したなオメw
420複乳:2010/04/25(日) 12:09:26
>>418
2003だけどならないな
セルにカンマかダブルクォーテーションをいれるとなるけどそれか?
エクセル txt出力 ダブルクォーテーション でぐぐればvbaのコードなんかもあった
421名無しさん@そうだ選挙にいこう:2010/04/25(日) 13:12:23
>>418
うちの2007(OS:WinXP)でも””は付かなかったが。
422418:2010/04/25(日) 22:05:19
どうも"付く場合と付かない場合があるようです。
最初の文字がアルファベットの大文字だったりすると
TXTファイルに出力後
”が文章の前後に付いてしまいます。
423複乳:2010/04/25(日) 22:30:15
付かなかった。寝る。
424名無しさん@そうだ選挙にいこう:2010/04/26(月) 07:07:06
同じく付かなかった。糞しる。
425複乳:2010/04/26(月) 11:59:35
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否
【5 検索キーワード     】エクセル リスト 新規項目 など
入力規則のリストですが、リストの設定は解除せずに
リスト以外の項目も入力するにはどうすれば良いでしょうか
426名無しさん@そうだ選挙にいこう:2010/04/26(月) 12:18:03
(;゚д゚)ァ
427名無しさん@そうだ選挙にいこう:2010/04/26(月) 12:30:55
質問お願いします。

【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 Googleやヘルプでの検索キーワード

1-21-03
1-01-15
2-45-96
1-62-35

などの数値があったとします。
この中から真ん中の文字だけを取り出したい場合(「1-21-03」の『21』)どうしたらいいでしょうか。
ご回答よろしくお願いいたします。
428名無しさん@そうだ選挙にいこう:2010/04/26(月) 12:44:13
>>427
取り出したい数字の前に常に2文字のみで、その後ろの2文字を取得
したいという場合の簡単な関数式は、

=MID(A1,3,2)

で、対応できます。
429名無しさん@そうだ選挙にいこう:2010/04/26(月) 13:06:53
>>427
長さが不定だと数式はMIDやFIND使うが少し面倒。
VBAの方がSplitoとかで簡単だな。
あるいは区切り位置使って2列目のデータを使うとか。
430複乳:2010/04/26(月) 13:09:08
自己解決しまんた
エラーメッセージ切ればいいだけでした
431名無しさん@そうだ選挙にいこう:2010/04/26(月) 13:15:23
427です。

ありがとうございます。
すごく助かりました。
432名無しさん@そうだ選挙にいこう:2010/04/26(月) 13:27:05
427見て考えてたんだがワイルドカード置換ができる関数あったっけ
433名無しさん@そうだ選挙にいこう:2010/04/26(月) 13:54:03
この場合はワイルドカードじゃなくて正規表現じゃないとかえって面倒でしょ
普通にFINDとMID並べるのと手間が変わらんくなる。
正規表現は標準では無理だけどアドインがある
434名無しさん@そうだ選挙にいこう:2010/04/26(月) 15:12:57
そりゃ正規表現が一番だがそれならVBAでやるよw
FINDやMIDを並べて作るとすごい長くて見にくいじゃない。整備しにくいのよ。
前と後と、しかも後ろのFINDには開始位置指定で前の結果の長さが必要なので実質式が3倍の量よ。

ワイルドカード置換の関数があったら、たとえば「Replaceワークシート関数+ワイルドカード機能付き」なのがあるなら
それでまかなえる場面では相当コードが簡潔になると思ってね。
435名無しさん@そうだ選挙にいこう:2010/04/26(月) 16:18:13
Excel2007って、キーカスタマイズはできないんでしょうか?
ショートカットキーの割り当てを自分で設定したいんです(><)
436名無しさん@そうだ選挙にいこう:2010/04/26(月) 16:40:44
excel2007ですが
クイックアクセスツールバーに現在のブックのみに適用でマクロを登録すると
直後はちゃんと登録されてるのですが再起動すると登録内容がクリアされてしまいます
これはそういうものなんでしょうか?
できる方法があれば教えてほしいです。
437名無しさん@そうだ選挙にいこう:2010/04/26(月) 17:10:14
>>436
ブックの拡張子は.xlsxかxlsmになってる?
普通に表示されるけど・・・
438436:2010/04/26(月) 17:19:53
.xlsmになってます。
普通はできるんですね。
何がおかしいんだろう?
439436:2010/04/26(月) 17:36:02
ちなみに
・マクロをすべてのドキュメントに適用
・マクロ以外を現在のドキュメントに適用
はどちらも正常にできます。

・マクロを現在のドキュメントに適用
だけができません。
440名無しさん@そうだ選挙にいこう:2010/04/26(月) 18:21:42
Excelを起動しなおして新規ブックで、Macro1を作ってみてもダメ?
441名無しさん@そうだ選挙にいこう:2010/04/26(月) 19:13:30
>>432>>434
429だが、俺と同じこと考えたな。
後ろの-*を置換できりゃ簡単だもんな。
おれは試してみて関数では多分できないと思って429を書いた。
442436:2010/04/26(月) 19:38:26
>>440
新規ブックで新規マクロ作って試してみましたが駄目でした。

セキュリティはずしてダイアログなしで
マクロ有効になるようにしてもみましたが駄目でした。

同じ症状になる人はいないですよね…
443名無しさん@そうだ選挙にいこう:2010/04/26(月) 20:05:47
>>407
返事が遅れてすみません。
無事できました。
ありがとうございました。
444428:2010/04/26(月) 20:52:28
>>427
数字の桁が増減しても大丈夫な関数式作ってみた。

=LEFT(RIGHT(A1,LEN(A1)-FIND("-",A1)),FIND("-",RIGHT(A1,LEN(A1)-FIND("-",A1)))-1)
445名無しさん@そうだ選挙にいこう:2010/04/26(月) 21:00:40
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

エクセルで作った表をWebでうpするため、html形式で保存すると
<meta http-equiv=Content-Type content="text/html; charset=shift_jis">になります。
社内のサーバでは、eucが義務化されてるためeucにエンコードするには
どうすればいいでしょうか?
446名無しさん@そうだ選挙にいこう:2010/04/26(月) 21:35:23
【1 OSの種類         .】 Windows xp
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】ちょっとだけ
【4 VBAでの回答の可否】 可・・・
【5 検索キーワード     】 excel データ 値段 変更

去年分から仕入れ帳を作ってます。
sheet1に 商品A 12,000
     商品B 5,000
という感じで、商品台帳を作ってあり、sheet2以降はvlookup関数で
値段を読み込んで月ごとに仕入れデータを入れてました。
今年4月から、かなりの商品の値段が変更になりました。
商品台帳で値段を変更すると、以前の仕入れデータも変わってしまいます。
vlookupではダメなんでしょうが、他にどういう機能を使えば
こういう対処ができるのかわかりません。
ご指導お願いいたします。
447名無しさん@そうだ選挙にいこう:2010/04/26(月) 21:42:46
>>446
商品台帳を年度ごとに分けて作り直す。
商品台帳の設計を変えて、古い値段と新しい値段を並べる。
古い仕入れデータは数式を消して、数字が変わらないようにする。

そもそも仕入れ価格なんてのはどんどん変化するものだから、それに対応できるように設計するべきだな。
448複乳:2010/04/26(月) 21:46:26
>>446
自分だったら過去の分は値で保存するかな
じゃなきゃVBAを使い、入力する度に値段も追加入力するか
449名無しさん@そうだ選挙にいこう:2010/04/26(月) 22:01:39
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 エクセル テーブル カラム 新 ピボット フィールド

A1からI300までを一行目を見出しとしてテーブルにしてピボット作ったりしてたんだが、カラムIに一列挿入してテーブルをA1-J300にしたら新しくピボット作るときのフィールドリストに新規に追加したカラムが出てきません・・・
I1にはフィルタなどの三角は出ています。

テーブル設定をし直せばいいのかもしれないんですが、なんででないのかわからんともやもやします・・・
450446:2010/04/26(月) 22:32:47
>>447>>448
返信ありがとうございます。
商品台帳を年度ごとに作り直すのは、年度内に2〜3回値段が
変わる商品もあるので・・・。
月ごとに値で保存しといて、台帳に古い値段と新しい値段を
並べる方法が一番いいんでしょうか?
(値段の変遷もわかるし)
商品名 新しい値段 古い値段1 古い値段2
商品A 10,000   12000  15,000
商品B  4000  5,000   6,000
横にどんどん古い値段が増えていきますが、
エクセルではもう、この方法しかないでしょうか?
451名無しさん@そうだ選挙にいこう:2010/04/26(月) 22:37:25
自分なら商品ごとに値段と価格改定年月日のテーブルをつくって、
入力日にいちばん近い改定年月日の値段を表示するようにする
452446:2010/04/26(月) 22:49:48
>>451さん 返信ありがとうございます。
商品台帳はこんなかんじですか?

商品名 改定日 新しい値段 改定日 古値1 改定日 古値2
商品A 4/1 10,000  3/1 12000 2/1 15,000
商品B 4/3 4000 3/5 5,000  2/15 6,000

>入力日にいちばん近い改定年月日の値段を表示するようにする
どういう関数が使えるんでしょうか?教えてください
453複乳:2010/04/26(月) 22:51:55
>>450
VBAで作ってみるわ
454446:2010/04/26(月) 22:58:45
>>453
よろしくおねがいします!
455複乳:2010/04/26(月) 23:00:14
>>454
はいどうぞ
ttp://www1.axfc.net/uploader/Sc/so/107506.xls
alt+F11で編集できるけど、まだ早いかなぁ
456名無しさん@そうだ選挙にいこう:2010/04/26(月) 23:02:17
テーブルってのはね 横にデータ伸ばしちゃだめなんだよ

商品コード 価格改定年月日 価格 備考

でタテに伸ばす。商品コード&入力年月日をキーにして、商品コード&価格改定年月日を
超えない行の価格を引いてくるLOOKUPでどうにかなるんじゃないかな
457446:2010/04/27(火) 00:11:06
>>複乳さん、>>456さん
どちらでもできました。ありがとうございました!

VBAはちょっとしか知らないですが、
値段差を入れていくという考え方は新鮮でした。
これでさらに、価格改定日とできた値段差を記録していくには
、どうしたらいいのでしょう?

LOOKUP関数は、必ずデータを昇順にしとかないとダメなんですね。
商品台帳sheet1をこんな感じにして

商品コード 商品名 価格改定年月日 値段
100    商品A   2月1日   400
100    商品A   3月1日   450
100    商品A   4月1日   500
sheet2で読み込む時
=LOOKUP(B2,Sheet1!$A$2:$A$4,Sheet1!$D$2:$D$4)
と入れたら、最新の金額500円が入りました。
これで合ってるでしょうか?
458名無しさん@そうだ選挙にいこう:2010/04/27(火) 00:13:42
【1 OSの種類         .】 Windows Vista
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 excel vlookup 複数条件、excel dget

下表のような、各部署ごとに使用しているファイル容量を拡張子別に示した表があったとします。
ここで、「人事部が使っているxls」の容量を書き出したい場合、どんなEXCEL関数を使うのがいいでしょうか?
vlookupは複数条件には使えないし、DGET関数を使おうと思いましたが、どうもうまくいきません…
アドバイスをお願いします。

※可能であれば、添付のZIPのようなことをやりたいので、
直接みてアドバイスしてもらえると大変助かります。

【表】
部署  拡張子  容量(GB)
人事部 xls    1
技術部 ppt    3
総務部 xls    5
法務部 doc    7
技術部 xls    8
法務部 ppt   11
人事部 ppt    20

【アップ先URL】
ttp://77c.org/upload.php
【ファイル名】
nk13990.zip
【パスワード】
0427
459名無しさん@そうだ選挙にいこう:2010/04/27(火) 00:25:55
>>427
おそいけど、IPアドレスのオクテットを抽出するときにやってる方法を流用

A1 に 1-21-03 とあったら、
=MID(A1,SEARCH("-",A1,1)+1,SEARCH("-",A1,SEARCH("-",A1,1)+1)-SEARCH("-",A1,1)-1)
こんな糞長い関数を組む。
460446:2010/04/27(火) 00:40:14
>>複乳さん
価格改定日とできた値段差を記録していくには
、どうしたらいいのでしょう?

できてました。すみませんでした、ありがとうございました!
461名無しさん@そうだ選挙にいこう:2010/04/27(火) 00:43:39
>>458
条件が複数あると簡単には検索できなくなるので、作業列に部署と拡張子を連結したデータを入れてしまって
そこから検索するのが一番早い

単に人間が目で見て確認したいだけならオートフィルタ
462名無しさん@そうだ選挙にいこう:2010/04/27(火) 00:46:13
>>458
DGET系関数は =DGET(元の表,取り出すデータ名,検索条件の表) といった感じで使います
表は見出し行を含みます

2007ならSUMIFS,COUNTIFSなんかもあります
463名無しさん@そうだ選挙にいこう:2010/04/27(火) 01:00:55
>>461 >>462

わかりました。
セルを結合させて検索させてみます。
アドバイスありがとうございました。
464名無しさん@そうだ選挙にいこう:2010/04/27(火) 06:20:26
>>458
並び順が違うけどまんまピボットテーブルじゃないか。
並び順も同じにしようと思えばできるけどな。
465名無しさん@そうだ選挙にいこう:2010/04/27(火) 06:25:53
>>458
よく見たらファイル区分にその他があるのか。
Ctrlを押しながらクリックしてグループ化すればいい。
466名無しさん@そうだ選挙にいこう:2010/04/27(火) 12:11:20
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 独学で勉強中
【4 VBAでの回答の可否】 可
エクセルデータ http://www1.puny.jp/uploader/download/1272336967.xls
パス 0000

マクロを動かすと実行時エラー1004 RangeクラスのSelectメソッドが失敗しました。
になります、確認するとRange("A6").Selectがエラーの原因になってるようなのですが
さっぱり解りません・・どなたか原因を調べてもらえませんでしょうか?お願い致します
467複乳:2010/04/27(火) 12:23:04
>>466
sheetに記述すると別シートの内容はさわれなくなる
標準モジュールに書いてcallで呼び出す

以下sheet2
Private Sub CommandButton1_Click()
Call sex
End Sub

以下標準モジュ−ル(頭の一行変えただけ)
Sub sex()
Dim 品名 As String
Dim 個数 As String
Dim サイズ As String

Sheets("Sheet1").Select
Range("A6").Select

---略---

End If
ActiveCell.Offset(1, 0).Select
Loop
End Sub

468名無しさん@そうだ選挙にいこう:2010/04/27(火) 12:24:05
>>466
その場合はシートの指定が必要
ActiveSheet.Range("A6").Select
とか
Worksheets("Sheet1").Range("A6").Select
にする
469466:2010/04/27(火) 13:46:23
>>647
ありがとうございました
今回は>>468さんの方法をとりましたが
勉強になりました
>>468
ありがとうございました
何とか動きました


また何かあったら宜しくお願いします。
470名無しさん@そうだ選挙にいこう:2010/04/27(火) 15:05:25
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

会社の経理の人に聞かれたものの、私には??
例えばセル内に「3/6-10/29」と入力すれば表示は「3月6日〜10月29日」という
ように変えることは出来ますか?
書式設定のユーザー定義をいじってみたものの分かりません。

よろしくお願いします。
471名無しさん@そうだ選挙にいこう:2010/04/27(火) 15:22:43
>>470
書式設定では無理でしょう
472複乳:2010/04/27(火) 15:24:33
>>470
書式設定では無理。やり方は二通り
a1に「3/6-10/29」入力した後
=TEXT(LEFT(A1,FIND("-",A1)-1),"m月d日")&"〜"&TEXT(RIGHT(A1,LEN(A1)-FIND("-",A1)),"m月d日")

A1に「3/6」B1に「10/29」のあと
=TEXT(A1,"m月d日")&"〜"&TEXT(B1,"m月d日")


473名無しさん@そうだ選挙にいこう:2010/04/27(火) 17:03:07
>>471,472

ありがとう。
474名無しさん@そうだ選挙にいこう:2010/04/27(火) 17:55:37
>>436
Excelのアップデートをすれば治りそうな気もするけど・・・

マクロ1個とマクロ以外のもの1個を現在のドキュメントのみに適用させて
保存したあと、ブックの拡張子をXLSM から ZIP に変えて
その中のuserCustomizationフォルダにあるcustomUI.xmlのソースを見ると
<mso:qat> 〜</mso:qat> の中にクイックアクセスツールバーの設定が記録されている。

例えばクイック印刷を追加していれば
<mso:control idQ="mso:FilePrintQuick" visible="true"/>
マクロ(Macro1)を追加していれば
<mso:button idQ="doc:Macro1_1" visible="true" label="Macro1" onAction="Macro1" imageMso="ListMacros"/>

これを確認すれば、保存時の問題なのかロード時の問題なのかはハッキリする。
ついでに、マクロの記述がなければメモ帳等でxmlに↑のマクロ記述を追加して
拡張子戻して開いてみる。(出てるかな?)
再び保存して閉じてもう一度開く(消えたかな?)
ここまで自力で調べた上で、マイクロソフトかこのスレの詳しい人に聞いてみるといいかも。
Excelのバージョン情報も忘れずに。
475??:2010/04/27(火) 19:52:35
今XPにインストールしてあるExcel2007を先日買ったWindows7 64bit搭載
ノートPCにもインストールしようと思ったんですが、XPについてきた
インストールCDをなくしてしまいできません。
CDなしでExcel2007やWord2007をノートPCへコピーすることはできないんで
しょうか?
476名無しさん@そうだ選挙にいこう:2010/04/27(火) 20:30:52
>>475
無理
477名無しさん@そうだ選挙にいこう:2010/04/27(火) 20:32:08
>>475
パソコン本体に付属のOfficeはそのパソコン専用。
ほかのパソコンに入れるのは違反。
478名無しさん@そうだ選挙にいこう:2010/04/27(火) 20:42:46
>>475
> ノートPC"にも"

CDあっても無理
479名無しさん@そうだ選挙にいこう:2010/04/27(火) 20:43:55
誰でも答えられる良質問ですね
480名無しさん@そうだ選挙にいこう:2010/04/27(火) 20:47:45
Excel2000です。
リストボックスから選択して値を入れた際に自動で背景色を付けたいのですが、どうすればいいでしょうか?
ググると条件付き書式が多く出ますが3つまでしか設定できないようで困ってしまいました。色は7色です。
481名無しさん@そうだ選挙にいこう:2010/04/27(火) 20:52:41
>>480
2007に買い換えるか、マクロを使うか
482名無しさん@そうだ選挙にいこう:2010/04/27(火) 20:55:40
>>481
おわた…orz
ありがとうございます。
483名無しさん@そうだ選挙にいこう:2010/04/27(火) 21:16:47
>>482
マクロ自体はそんなに難しくないけどね
484436:2010/04/27(火) 21:36:49
>>474
レスありがとうございます。
書いてあるとおりにやってみたら保存はされてるみたいなのでロード時の問題ですかね?

以下<mso:qat>タグの中だけコピぺします。

<mso:documentControls><mso:button idQ="doc:C:_Documents_and_Settings_***_デスクトップ_Book1.xlsm_Macro1_1"
visible="true" label="Macro1" onAction="C:\Documents and Settings\***\デスクトップ\Book1.xlsm!Macro1"
imageMso="ListMacros"/></mso:documentControls>

これを起動してもツールバーには表示されません。
バージョンは2007 (12.0.6524.5003) SP2 MSO (12.0.6529.5000)です
わかる方いらっしゃったらお願いします。
485名無しさん@そうだ選挙にいこう:2010/04/27(火) 22:14:23
>>484
マクロの指定に絶対パスが入ってるから、xmlがそこを参照しに行って
エラーになってる希ガス・・・
マクロ以外だけだったらok、マクロ+他のだったら、他のものも表示されなくない?
どうしてパスが入っちゃってるんだろう
自分の場合、他のブックのマクロを参照しても絶対パスは出ないんだけど(ブック名!マクロ名)
EXCELの環境設定かもしれないですね。

EXCELに詳しい人、マクロを参照したときにパスが出ない方法がわかったら
教えてください。おねがいします。
486445:2010/04/28(水) 01:06:57
445です。どなたか分りませんか?
487名無しさん@そうだ選挙にいこう:2010/04/28(水) 01:22:08
>>486
Excel単独では難しいと思う。

ファイル数が少ない場合は、一度IEで開いてから「名前を付けて保存」でEUC形式を選べば、
文字コードとタグの両方が自動で修正される。

大量にある場合は文字コードを変換するフリーウェアとタグを置き換えるフリーウェアを組み合わせる。
これらのフリーウェアをVBAから呼び出して自動化する方法もよく使われる。
マクロが使えるテキストエディタで文字コードとタグを一度に変換するという手もある。
488名無しさん@そうだ選挙にいこう:2010/04/28(水) 11:48:39
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 exec チェックボックス
チェックボックスをONの状態で表示する事は出来ますが、変更出来ないようにする事は出来ますか?
489名無しさん@そうだ選挙にいこう:2010/04/28(水) 12:27:23
すいません。
エクセル2007で、別のシートの数字をオートSUMで適用させるには
どうしたらいいですか?

具体的には
シート1にある 1〜6月の合計数字と
シート2にある 7〜12月の合計数字を足したものを
シート2に総合計として出したいのです。

尚、シート1に1〜12月までのすべてを記述するのは
見やすさ的に厳しいのがあるので無理です。
490名無しさん@そうだ選挙にいこう:2010/04/28(水) 15:26:56
>489
Σ→シート1の1〜6月ドラッグ→「,」→シート2の7〜12月ドラッグ→「Enter」
491名無しさん@そうだ選挙にいこう:2010/04/28(水) 16:56:44
特定のパソコン、特定のExcelのファイルで保存が出来なくなります。
特定ですから、別のパソコンや別のExcelファイルでは保存は出来ます。一応マクロを使っているのですが、そのマクロを使った別のExcelファイルであれば保存できます。

原因が分からないのですが、どなたかご教授ください。


【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 excel2000 保存できない

492複乳:2010/04/28(水) 17:23:56
>>488
右クリックぷろぱちぃのEnabledをFALSE
>>489
串刺し計算とか。
=SUM(Sheet1:Sheet3!A1)
これでシート1から3のA1の合計。但し同じセルじゃないとダメ
>>491
LAN上にあるならフォルダ、ファイルの権限とか
この質問は原因が多い
解決策としては、新しいブック作ってシートコピー
493名無しさん@そうだ選挙にいこう:2010/04/28(水) 17:54:14
>>490
すまん。できません。

具体的には
例えばシート1のT3にある合計数字と、シート2のT3にある合計数字を
シート2のW3に総合計として出したいんです。
494名無しさん@そうだ選挙にいこう:2010/04/28(水) 18:47:45
>>491
バージョンの違いとかも考慮。
495名無しさん@そうだ選挙にいこう:2010/04/28(水) 19:45:15
>493
オートSUMというから…

シート2のW3に  =Sheet1!T3+T3
496名無しさん@そうだ選挙にいこう:2010/04/28(水) 19:59:16
>>493
Sheet2のW3へ
=SUM(Sheet1!T3,T3)
でもおk。
>複乳
Sheet3は対象外ぜよ。
497445:2010/04/28(水) 22:14:38
>>487
ありがとうございます。
マクロは分らないので、IEで開いて保存することにしました。
498名無しさん@そうだ選挙にいこう:2010/04/28(水) 22:20:57
どこのスレで聞けばいいのかわからなかったのですが、とにかく聞きたいです。
大学でのレポートを書くために、Excelやpowerpointを使えるようになりたいんですが、勉強するための何かいい本やサイトはありますかね?
おすすめがあれば教えてください。
超初心者です。よろしくお願いします。
499名無しさん@そうだ選挙にいこう:2010/04/28(水) 22:23:13
2ちゃんでえぇやん
500名無しさん@そうだ選挙にいこう:2010/04/28(水) 22:26:53
>>499
今はセルに数字を打ち込むことくらいしかできないので、一通りのことを学べる本なんかないですかね?
501名無しさん@そうだ選挙にいこう:2010/04/28(水) 22:38:01
やる気と覚える気があればどの本でもHPでもある程度のレベルまでは到達する
502名無しさん@そうだ選挙にいこう:2010/04/28(水) 22:42:18
ダイソーのパソコン書籍は1冊105円(税込)でいろいろあります。(パワポはなし、ExcelとWord)
入門編と中級編とあります。
503名無しさん@そうだ選挙にいこう:2010/04/28(水) 22:53:11
やる気はあるんですが、昔から要領が悪いので効率よく勉強したいです。
なるべくとっつきやすくて、説明だけでなく具体的な例題なども載っているものがいいんですが。
ダイソーの本も安くて興味あります。今度見てみます。
504名無しさん@そうだ選挙にいこう:2010/04/28(水) 23:14:47
▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━
【1 OSの種類         .】 Windows**
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい

入力規則でリストからドロップダウンで選択する際に、空白を選べるようにするにはどうすればいいですか?
「元の値」欄に「A,  ,B」とやっても「A」と「B」しか選べません。
セル参照でやるしかないでしょうか?
505複乳:2010/04/28(水) 23:38:40
>>503
それをやる気が無いという。
言い訳を作って怠けてるだけ、学問に王道無し
というと説教くさいので補足すると、エクセルの用途はかなり多岐に渡るので
その用途が分からないと効率のいい方法なんて教えようがない
資格が欲しいなら「エクセル 資格」と書いた本を買えばいいし、
自営業なら本じゃなくテンプレートをサイトで落とせばいい
目的なく覚えたい?エクセルコーナーの平積みになっていて、壁から一番離れてるものを「購入」して書いてある通りに操作する
それだけで身につく。
ちなみに俺は事務7年ほどやっているがグラフをまともに作ったことが無い。
>>504
>>425>>430
入力規則の右の右のタブのエラーメッセージ。無効な〜をオフ
506名無しさん@そうだ選挙にいこう:2010/04/28(水) 23:54:11
質問です
どうしたら良いものなのか考え疲れました…

下記のように6回目までの偶数、奇数の
全パターンをexcelで作りたいのですがどうすればいいのでしょうか
手入力では、どこかで間違えそうで正確さに欠ける上、時間がかかりすぎます

1回目 2回目 3回目 4回目 5回目 6回目
偶数  偶数  偶数  偶数  偶数  奇数
偶数  偶数  偶数  偶数  奇数  偶数


偶数  奇数  偶数  奇数  偶数  奇数


偶数  偶数  偶数  偶数  偶数  偶数
507名無しさん@そうだ選挙にいこう:2010/04/28(水) 23:55:58
>>506
意味がわからないからエクセルファイルごとULしてくれるかもう少しわかりやすい説明をしてくれ
508名無しさん@そうだ選挙にいこう:2010/04/29(木) 00:29:22
>>506
A1に =(MOD(ROW(A1)-1,2^COLUMN(A1))<2^(COLUMN(A1)-1))*1
これをコピーしてA1:F64に貼り付け

ってことであってる?
509複乳:2010/04/29(木) 00:44:34
>>506
2進数の関数で01やってmidで取ふぇwf
説明めんどい。これ使え。右側が完成形
ttp://www1.axfc.net/uploader/Sc/so/108158.xls
510名無しさん@そうだ選挙にいこう:2010/04/29(木) 00:52:42
>>507
説明べたですみませんでした・・・

>>508>>509
こういうのをひょいっと作れるのが本当にうらやましいです…
非常に助かったのですが、落ち込みました

ありがとうございました
511名無しさん@そうだ選挙にいこう:2010/04/29(木) 02:04:23
教えてください。お願いします。

dcountなどの関数で、

「列」という範囲名で指定した、列方向の(たとえばd列〜f列まで全部)範囲

「行}という範囲名で指定した、行方向の(たとえば、10行〜20行まで全部)範囲

この二つの交差した部分(D10..F20)を検索の対象にしたいとき、

二つの範囲名の間に、何か演算記号を用いて、
重なりの部分を指定することはできませんか。

教えてください。

お願いします。

512511:2010/04/29(木) 02:07:19
【1 OSの種類         .】 Windows**
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】いいえ
申し遅れました。
513複乳:2010/04/29(木) 10:32:30
>>511
半角スペース(そういやこの演算子の名前シランな)
例えば=SUM(A:B B:C) でB列全部をsumの対象にできる
=SUM(2:2 B:C) 列と行でもオッケー
514名無しさん@そうだ選挙にいこう:2010/04/29(木) 10:48:44
積集合演算子、とでも呼べばいいのかな

つか勉強になった。そんな指定が可能だったとは。
515名無しさん@そうだ選挙にいこう:2010/04/29(木) 14:47:20
>514
参照演算子 のうちのひとつ だそうです。2個前のスレにありました。

パソコンサポートねっと
http://www.ntswebnet.jp/pc/index.cgi?field=8
の一番下の方にあります。 参考まで
516名無しさん@そうだ選挙にいこう:2010/04/29(木) 15:03:33
くだらないこと教えてください
関数式でCOUNTOTIFをダブル合成で使用しているのですが
双方(countif)の条件を満たした場合にIF関数が適用されるようにするにはどうしたらいいのでしょうか?
下記のやりかただとなんか違う答えになっちゃうんですよね

=IF(COUNTIF(B2:G2,"1")*COUNTIF(G2,"2"),"●","○")
517名無しさん@そうだ選挙にいこう:2010/04/29(木) 15:15:49
式をもう一度見直せ
518名無しさん@そうだ選挙にいこう:2010/04/29(木) 15:16:33
>>516
COUNTIFは条件を満たすセルがいくつあるか数える関数
条件を満たすかどうかだけを調べるのはIF関数

=IF(AND(条件1,条件2),"●","○")
519名無しさん@そうだ選挙にいこう:2010/04/29(木) 15:21:40
>>517,518
ありがとうございます!できました!
520名無しさん@そうだ選挙にいこう:2010/04/29(木) 15:50:14
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002

次のようなFor文で回数が3のとき、Rにはそれぞれ"84:93"、"107:116"、
"130:139"と入れるにはどう書けばいいですか?

For i = 1 To 回数
 'R = "(i * 23 + 61) : (i * 23 + 61)+10"
 Rows(R).EntireRow.Hidden = True '84-93 107-116 130-139
Next
521520:2010/04/29(木) 16:03:29
自己解決しました。
522511:2010/04/29(木) 21:31:18
>513
へぇ〜 半角スペースですか!
アンダースコアとかいろいろ試したんですが・・・意外です。
ありがとうございます。
「513さんに、感謝します!!」((清志郎風に、言ってみる)
523511:2010/04/30(金) 02:47:20
>515
 今日は手元にエクセル入りのパソコンがなかったため、oooのカルクで、「参照演算子」を
手がかりに、ヘルプを開き、確認をしました。
 すると、エクセルの「半角スペース」の代わりに「!」を「演算子」として用いればよいことがわかりました。
 簡単な表を組んで、試してみると期待通りの結果を得ることができました。
 ご助言を下さった皆様ありがとうございます。ちょっと・・・・・否、ソートーうれしいです!


 
 
524名無しさん@そうだ選挙にいこう:2010/04/30(金) 05:13:23
>>519
悪いとは言ってない
馬鹿にしてるだけ
525名無しさん@そうだ選挙にいこう:2010/04/30(金) 12:03:53
>>495-496
thx
526名無しさん@そうだ選挙にいこう:2010/04/30(金) 23:08:52
【1 OSの種類         .】 WindowsVista
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 excel オートフィルタ リスト範囲 変化
オートフィルタ抽出 結果 変わる etc

質問させて下さい。
以下の様な表にて、氏名のオートフィルタでA氏を選択すると、
最初は空白以下のところに「3」しか表示されず、
その後一度フィルタ解除(全て選択)しもう一度同じA氏を選択すると、
今度は空白以下に「2」と「3」が表示され、繰り返す毎に空白以下の
表示結果が違ってくる状態なのですが、原因解る方いますか…?

【表】
AM/PM   氏名   項目   
AM     A氏 出勤
PM A氏   外回り
〜〜〜〜(中間略)〜〜〜〜
     空白行     
1
       2
3
527526:2010/04/30(金) 23:11:03
図がずれましたのでもう一度書きます。

【表】
AM/PM   氏名   項目   
AM    A氏    出勤
PM    A氏   外回り
〜〜〜〜(中間略)〜〜〜〜
     空白行     
      1
      2
      3
528名無しさん@そうだ選挙にいこう:2010/04/30(金) 23:14:22
l;/l;/;l
529複乳:2010/04/30(金) 23:38:23
>>526
オートフィルタはバグが多いらしい
あと空白行をはさむと別テーブルになるから、避けた方が良い
530526:2010/05/01(土) 00:47:06
>529
そうなんですね…
何をやってもうまくいかなかったので、空白にダミー文字入れて対応させました。
ご返信頂き有難うございます。
531名無しさん@そうだ選挙にいこう:2010/05/01(土) 09:02:46
【1 OSの種類         .】 Windowsxp
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 excel 範囲 判定 条件 順位 グループ 所属

0超えから10以下 3
10超えから10以下 6
20超えから30以下 7
30超えから40以下 8
40超えから50以下 10
60超え 12

このように段階毎に数値が決められていてこの数値と掛けあわせたいのです。
例えば25という数字が上記のどこに含まれるかをifで条件式を書くと入れ子が激しく見難い式になってしまいます。
実際には200以上まであるのでif入れ子では大変だなと思いまして、こういう判定に向いてる関数はないものでしょうか?
お休み中のところすみませんが、どなたかどうぞ宜しくお願いします。
532名無しさん@そうだ選挙にいこう:2010/05/01(土) 09:17:16
あげるのを忘れました宜しくお願いします。
533名無しさん@そうだ選挙にいこう:2010/05/01(土) 09:20:56
50超えから60以下は11?
534名無しさん@そうだ選挙にいこう:2010/05/01(土) 09:22:38
>>531
vlookupのtrueで場合分け
http://kokoro.kir.jp/excel/vlookup-true.html
こんな感じですかね
535名無しさん@そうだ選挙にいこう:2010/05/01(土) 09:39:14
あえて見苦しい式作った。
=IF(A1="","",IF(A1>60,12,IF(A1>50,11,IF(A1>40,10,IF(A1>30,8,IF(A1>20,7,IF(A1>10,6,3)))))))
536名無しさん@そうだ選挙にいこう:2010/05/01(土) 11:08:15
>>531
VLOOKUPでもできるがLOOKUPのほうが簡単。
列番号と検索の型TRUEを書く必要なし。
=LOOKUP(検索値,リスト)でよい
リストは2列の対応表を作ればよい。
537名無しさん@そうだ選挙にいこう:2010/05/01(土) 13:25:36
>>533
>>534
>>535
>>536
ありがとうございました!
凄い便利な関数ですね。
感謝です。
538名無しさん@そうだ選挙にいこう:2010/05/01(土) 15:29:01
>>536
すみませんです。
出来ると思い込んで動かしたら、「超え〜以下」の判定が「以上未満」になっていることに気付きましたです。
lookupの「以上未満」動作を「超え〜以下」に変えるには知恵が要りますね。

また、検索値がマイナスを取るときに#N/Aというエラーになってしまいました。
>>531の例文が間違っていました。

10以下 3
10超えから20以下 6
20超えから30以下 7
30超えから40以下 8
40超えから50以下 10
50超え 12

こうでした。lookupで作ると検索値が50なのに12が返されてしまったり、-10に対して#N/Aになってしまいます。
関数は教えてもらったので本当は後は自分でやるべきなのですが。
なかなか解決策を思いつけずにいます。
539名無しさん@そうだ選挙にいこう:2010/05/01(土) 15:55:31
>>538
自分だったら↓こうやりそうだけど、もっといい方法あるかな

=-(10^10)    3
=10+0.1^10   6
=20+0.1^10   7
540名無しさん@そうだ選挙にいこう:2010/05/01(土) 16:01:59
>>539
なるほど、作業列を一つ作り、そこに+0.1^10のようにすることで、実質超え〜以下を実装するわけですね。
もしくは見た目は小数点以下切捨てにしておけば・・・
凄いです。
全然思いつかなかったです。
ありがとうございました。
541名無しさん@そうだ選挙にいこう:2010/05/01(土) 17:38:23
>>538
数値が1000程度なら1-1000まで対応するテーブルをつくれば確実
542名無しさん@そうだ選挙にいこう:2010/05/01(土) 19:58:41
>>541
検索値は無限なのです。
分類は1000も行きませんが。
543名無しさん@そうだ選挙にいこう:2010/05/01(土) 20:02:58
であれば、横に式の入ったセルを伸ばすのがいいんじゃないかね
A列に値がはいってるとしたら、B列に10以下だったら3が入る式、
C列に10超20以下だったら6が入る式って具合に
544 ◆Excel//q4U :2010/05/01(土) 20:22:00
545544:2010/05/01(土) 20:24:05
ごめん
よく読んでなかった。
わすれてくれ
546名無しさん@そうだ選挙にいこう:2010/05/02(日) 10:46:12
>538
配列に参照値が使えないので、予めMAX(A1:A65536)を求めておいて
 ↓のMAXと置き換える。
=INDEX({12,10,8,7,6,3},MATCH(A1,{MAX,50,40,30,20,10},-1))
547名無しさん@そうだ選挙にいこう:2010/05/02(日) 15:27:05
【1 OSの種類         .】 Windows vista
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 ハイパーリンク 画像

ハイパーリンクで画像ファイル(jpg)をリンクさせたのですが
ファイルがInternetExplorerで開いてしまいます

Windowsフォトギャラリーでファイルを開かせるにはどうすればいいのでしょうか
548名無しさん@そうだ選挙にいこう:2010/05/02(日) 15:50:54
ファイルを開くプログラムであらかじめ指定しておけばいいんじゃね?
549名無しさん@そうだ選挙にいこう:2010/05/03(月) 15:26:36
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

このような表で、オートフィルタで実績を抽出すると機種名のD601、D301、
D303が消えてしまします。機種名を全て表示させておく方法がありますか?

ジャンル  機種名  項目   計/実  4月   5月   6月
カメラ    D601   ソフト   計画  5,000  6,200  7,100
        D602          実績
               電気   計画   200   300   200
                     実績
               機構   計画   120   150   300
                     実績
         D301     ソフト    計画  4,200  3,300  2,000
         D302          実績
         D303    電気    計画   200   300   200
                     実績
               機構    計画   150   220   180
                     実績
550名無しさん@そうだ選挙にいこう:2010/05/03(月) 15:34:47
>>549
わけわかんない表だね(´・ω・`)
D601の実績行がないくせに、表示させておきたいの?

エクセルの表は見た目重視ではなく、操作性重視にしないと余計な苦労をする。
551名無しさん@そうだ選挙にいこう:2010/05/03(月) 16:12:53
>>549
機種名を書いた複数のセルを結合し、それぞれAlt+Enterで改行しておけば
オートフィルタでも行の非表示でも表示させおけるぞ

>>550
わけわかんないなら答えるなよwwww
想像力もない愚かさを披露しなくてもいいぞwww
552名無しさん@そうだ選挙にいこう:2010/05/03(月) 16:15:48
>>549
Excelでデータ処理をするには、それに適した配列にしなくてはならない。
具体的には、このようにすべてのデータを「縦一列」に並べ、
項目のところにも空白ができないように、同じ項目名を何度も並べる。
これを「データの正規化」といって、データ整理の基本中の基本になる。
見やすいように一覧表にする作業はまた別の仕事として切り離して考える。

ジャンル  機種名 項目 計/実  月  データ
カメラ    D601  ソフト 計画  4月  5,000
カメラ    D601  ソフト 計画  5月  6,200
カメラ    D601  ソフト 計画  6月  7,100
カメラ    D602  ソフト 実績  4月
カメラ    D602  ソフト 実績  5月
カメラ    D602  ソフト 実績  6月
カメラ    D602  電気  計画  4月   200
カメラ    D602  電気  計画  5月   300
カメラ    D602  電気  計画  6月   200
553名無しさん@そうだ選挙にいこう:2010/05/03(月) 17:04:23
552だと、オートフィルターで「実績」を選んだらD602しか選べないんだが?

つーか、まぁいいや
554549:2010/05/03(月) 20:49:09
>>550
罫線を引いてみました。
複数の機種に投資計画が組まれてて、オートフィルタで実績を選ぶと
これらの機種に対する各実績を表示させたいんです。
上層部から与えられた書式なので変えられません。

┌────┬────┬───┬───┬───┬───┬───┬─
│ジャンル..│機種名  │項目  │ 計/実 │ 4月...│ 5月...│ 6月 │
├────┼────┼───┼───┼───┼───┼───┼─
│カメラ   │ D601  │ソフト. │計画  │ 5,000│ 6,200.│ 7,100.│
│      │ D602  │     ├───┼───┼───┼───┼─
│      │      │     │実績  │     │      │      │
│      │      ├───┼───┼───┼───┼───┼─
│      │      │電気  │計画  │   200.│   300.│   200.│
│      │      │     ├───┼───┼───┼───┼─
│      │      │     │実績  │     │      │      │
│      │      ├───┼───┼───┼───┼───┼─
│      │      │機構  │計画  │   120.│   150.│   300.│
│      │      │     ├───┼───┼───┼───┼─
│      │      │     │実績  │     │      │      │
├────┼────┼───┼───┼───┼───┼───┼─

>>551
セルを結合すると、機種名でD602とかD303が抽出できなくなってしまいます。

>>552
すみません。論外です。
“549で書いた表” で、オートフィルタで実績を抽出(ry です。
私の質問は、データ処理うんぬんではありません。
555名無しさん@そうだ選挙にいこう:2010/05/03(月) 21:00:15
不可能です。根本的に表をつくりかえるしかありません。
556名無しさん@そうだ選挙にいこう:2010/05/03(月) 21:13:02
>>554
>論外です。

と言われてもエクセルの仕様だからあきらめな
>>552の書いた表が基本というか最終形というか、これしかない、というか。

見た目に拘るのなら、抽出その他は諦める。
557名無しさん@そうだ選挙にいこう:2010/05/03(月) 21:56:29
>>556
552の表が基本というならともかく、最終形じゃないでしょ?
バカなの?
558複乳:2010/05/03(月) 21:58:15
>>549
>>552が正しい。が、ソフトのの出力形式によりそうでない場合もあるだろうから
>>554のH2に↓を入れて下にオートフィルタ。3月まであると思うが、H列というのは適宜変えてくれ
H2=IF(B2="",H1,B2)
あとそのソフトに言ってこういう形式で出力できるよう頼んだ方がいいぞ
上司が勝手に作ったのもなら従うしかないけどな
559複乳:2010/05/03(月) 22:24:10
>>558
>ソフトのの
なにこいつきめえしねwwwww
560名無しさん@そうだ選挙にいこう:2010/05/03(月) 22:35:40
マクロ屋の俺がVBAで抽出マクロ作ってやる
フォーム1個とモジュール1個のセット価格で今なら2万円にサービスだ
561名無しさん@そうだ選挙にいこう:2010/05/03(月) 22:47:25
あらお安い
562名無しさん@そうだ選挙にいこう:2010/05/03(月) 23:15:23
>>554
何度か言われてるみたいだが、笑わせてもらったので書いとく。

「Excel の仕様で、そのやりたい事を実行する方法が無い」
「やるなら抽出するキーワードの行に表示したいモンを書け」
「その仕様を満たすマクロなら有償でつくるぞ」と親切に回答してもらってるんだ。
ありがとうの一言くらい書いておけよ。

代替方法まで書いてもらってるのに、論外ってw
563複乳:2010/05/03(月) 23:49:37
>>560
いいなぁ
おれも雇って欲しいわw
564名無しさん@そうだ選挙にいこう:2010/05/04(火) 05:59:26
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

グラフほとんどいじったことないのですが、
仕事で急遽作る必要ができましたのでみなさん教えてください。
初歩的な質問かと思いますが。

。。。。A商品 B商品 C商品 D商品
1日。。10。。41。。22。。15
2日。。25。。11。。45。。74
3日。。12。。25。。12。。22
4日。。26。。11。。36。。55
。。。。。
30日。。16。。33。。46。。54

このような表から、日付ごとの商品売上の比較をしたいのですが、
A商品とB商品の比較をするグラフはすぐできました。
これとは別に、日付を入れたままC商品とD商品の比較をする
棒グラフはどうやって作るのでしょうか?
565名無しさん@そうだ選挙にいこう:2010/05/04(火) 07:51:48
日にちの列と、C商品、D商品の列を選択して、グラフを作成すればOK
566名無しさん@そうだ選挙にいこう:2010/05/04(火) 08:00:23
>>564
キーボードのCtrlキーを押したままにすれば、
マウスのボタンを離しても選択が解除されないから、離れたセルが選択できるよ
567名無しさん@そうだ選挙にいこう:2010/05/04(火) 16:05:44
>>565-566
564ですがありがとうございました。
そういやCtrlで範囲指定できるんでしたね。
初歩的すぎてお恥ずかしい。。。
おかげでうまくできました☆
568名無しさん@そうだ選挙にいこう:2010/05/04(火) 18:30:20
2007について質問です
貼り付け時の設定が「元の書式を保持」がデフォになっていて
毎回貼り付けのオプションから「貼り付け先の書式に合わせる」に変更していて
これが非常に煩わしいのでデフォを「貼り付け先の書式に合わせる」か
直前に選択した設定が次回にも引き継がれるようにしたいのですが可能でしょうか?
設定の仕方をご存じの方おられたら宜しくお願いします
569名無しさん@そうだ選挙にいこう:2010/05/05(水) 00:27:09
【1 OSの種類         】 Windows Vista
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 フィル 連続データ
A1とA2、A3とA4、A5とA6がそれぞれ結合されているセルに
=B1、=B2、=B3という式を設定したいのですが、
フィルの連続データでは=B1、=B3、=B5となってしまいます。
良い方法を教えて下さい
570名無しさん@そうだ選挙にいこう:2010/05/05(水) 00:34:01
すいませんテンプレ忘れてました。。。再投稿です
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

2007について質問です
貼り付け時の設定が「元の書式を保持」がデフォになっていて
毎回貼り付けのオプションから「貼り付け先の書式に合わせる」に変更していて
これが非常に煩わしいのでデフォを「貼り付け先の書式に合わせる」か
直前に選択した設定が次回にも引き継がれるようにしたいのですが可能でしょうか?
設定の仕方をご存じの方おられたら宜しくお願いします
571名無しさん@そうだ選挙にいこう:2010/05/05(水) 00:40:52
>>569
564ですが今回は回答者で。
A1=INDIRECT("B"&(ROW()+1)/2)
572名無しさん@そうだ選挙にいこう:2010/05/06(木) 16:54:54
【1 OSの種類         .】 Windows xp SP3
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

2〜3ヶ月前ぐらいからファイルを開くと閉じたときと違う大きさで開き
サイズを変えようとしても変わりません。移動も出来ません。

一度最小化して戻すと動きます。
アンインストールしてレジキーも削除してインストールし直すと
最初はいいのですがすぐに元に戻ります。

どなたか救いの手を・・・
573名無しさん@そうだ選挙にいこう:2010/05/06(木) 18:05:50
【1 OSの種類         .】 vista
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

G  H
1  2
2  3
4  1

1  3
5  8

というような、Gには確実に文字列が入り、Hには入っている場合と入って無い場合があります。
この場合、Hが空白ならGをHに入れる、という方法はありませんでしょうか?
574名無しさん@そうだ選挙にいこう:2010/05/06(木) 19:23:34
お願いします。
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 SUMPRODUCT

A B
1 あ 100
2 い 200
3 う 300
上記のような表で、以下のようにしても0と表示されます。
=SUMPRODUCT(A1:A3="い")
1という結果が表示されてほしいのですが、どこが間違って
いるのでしょうか。「い」の前後に空白などはありませんで
した。
ちなみに、下記の式では600と正しい結果が返ります。
=SUMPRODUCT(B1:B3)

よろしくお願いします。
575名無しさん@そうだ選挙にいこう:2010/05/06(木) 19:34:18
>>574
ごめん、何をしたいのか分からない
なんでSUMPRODUCTなんか使っているの?
もしかして件数ならcountif
というか、SUMPRODUCTはたぶん574にはまだ使いこなせない関数
576名無しさん@そうだ選挙にいこう:2010/05/06(木) 19:43:40
>>573
一番簡単にするのは 
I列とかに =IF(H1="",G1,H1) として下までドラッグ
I列をコピーしてG列選択後、形式を選択して貼付けで「値」にしてOK
577名無しさん@そうだ選挙にいこう:2010/05/06(木) 19:58:13
>>574
本当はこんな使い方をする関数じゃないんだが、とりあえず「い」の数を出すなら
=SUMPRODUCT((A1:A3="い")*1)

正解は
=COUNTIF(A1:A3,"い")
578名無しさん@そうだ選挙にいこう:2010/05/06(木) 20:10:11
>>575
>>576
ありがとうございます。
本当はもっと大きい表で複雑な条件なのですが、うまくいかないので
小さくしていきました。

「*1」を加えたら予定どおりカウントできました。ありがとうございます。
しかし、なぜ「*1」が必要なのでしょうか?
579名無しさん@そうだ選挙にいこう:2010/05/06(木) 20:13:28
>>578
(A1:A3="い") で出てくる配列は 「false;true:false」
これに1をかけると「0;1;0」
これを足すから1になる。
580名無しさん@そうだ選挙にいこう:2010/05/06(木) 20:17:26
ついでに配列数式の基礎
http://pc.nikkeibp.co.jp/pc21/special/hr/
581名無しさん@そうだ選挙にいこう:2010/05/06(木) 20:25:53
>>579
>>580
ありがとうございました。
582名無しさん@そうだ選挙にいこう:2010/05/06(木) 20:29:07
SUMPRODUCTが出てきたのでついてに質問します。
@=SUMPRODUCT((A1:A10="りんご")*(B1:B10="A商店")*C1:C10)
A=SUMPRODUCT((A1:A10="りんご")*(B1:B10="A商店"),C1:C10)
は同じですよね?
個人的に@はあんまりSUMPRODUCT的な感じがしませんが・・・
583名無しさん@そうだ選挙にいこう:2010/05/06(木) 20:55:08
>>582
Cの列に文字列を入れてみると違いが分かるかも

たとえば
A列 B列 C列
りんご A商店 100
ばなな B商店 ×

ってやってごらん。結果が違うよ
584名無しさん@そうだ選挙にいこう:2010/05/06(木) 21:04:40
582ですが。。。
ほんとだ、なんで違うんだろう。
585名無しさん@そうだ選挙にいこう:2010/05/06(木) 21:12:40
配列の条件式で*とか+とか使ってみると、
ANDが「論理積」、ORが「論理和」と言われる理由がよく分かるよね。
586複乳:2010/05/06(木) 22:31:14
>>572
OSの再インストール。
587名無しさん@そうだ選挙にいこう:2010/05/07(金) 16:49:30
>>586
ありがとうございます。
OSですかー、ディスクエラーチェックしてもだめでした。

キャドや他のソフトのセットアップやカスタマイズを考えると
気が遠くなりそう・・・
588名無しさん@そうだ選挙にいこう:2010/05/07(金) 20:14:30
589名無しさん@そうだ選挙にいこう:2010/05/08(土) 01:18:03
会社で使ってるExcelファイルで、シートが100個くらいあるのがあるのですが、
このシートのシート名だけを抽出する方法はありませんか?
どこか、例えば先頭シートのA1〜A100のセルにシート名100個を入れたい。
590複乳:2010/05/08(土) 01:28:09
おおやっとアク禁解除だ
>>589
VBA。
Option Explicit
Sub fuku()
On Error Resume Next
Dim i
For i = 1 To 100
Cells(i, 1).Value = Sheets(i).Name
Next
End Sub
591名無しさん@そうだ選挙にいこう:2010/05/08(土) 04:28:32
>>590 それじゃダメ

Sub a()
  Sheets(1).Activate
  Range("A1").Select
  For Each s In Sheets
    Selection = s.Name
    Selection.Offset(1, 0).Select
  Next
End Sub
592名無しさん@そうだ選挙にいこう:2010/05/08(土) 06:37:54
>>591
なにこれ 気持ち悪いコード
593名無しさん@そうだ選挙にいこう:2010/05/08(土) 07:38:31
>>591を添削してあげよう。
グラフシートなども書き出す時は
Sub a()
Dim c As Range
Dim sh As Variant
Set c = Worksheets(1).Range("a1")
For Each sh In Sheets
  c.Value = sh.Name
  Set c = c.Offset(1)
Next
End Sub

ワークシートのみ書き出しの場合は
Sub a()
Dim c As Range
Dim sh As Worksheet
Set c = Worksheets(1).Range("a1")
For Each sh In Worksheets
  c.Value = sh.Name
  Set c = c.Offset(1)
Next
End Sub
594名無しさん@そうだ選挙にいこう:2010/05/08(土) 07:57:39
おっとっと、俺が添削されるなw
最初のはDim sh As Objectだったな。
595名無しさん@そうだ選挙にいこう:2010/05/08(土) 08:27:10
>588
ありがとうございます。
やってみましたがだめでした。

しばらく様子を見ます・・・
596複乳:2010/05/08(土) 10:35:41
>>595
さっさと再インストールした方がいいと思うが・・
多分エクスプローラ側の問題
>サイズの記憶方法はIEのウインドウを1つだけ表示し、記憶させたいサイズにしたあと、「ctrl」キーを押しながら、「×」マークの閉じるボタンを押すだけです。
これエクセルにも使えるのかな
597名無しさん@そうだ選挙にいこう:2010/05/08(土) 15:28:01
VBA初心者です。
For文に使う変数は、どの本を読んでも For i = 1 To 10 みたいに "i" が使われてます。
なぜ "A" とか "a" ではないのでしょうか?
598589:2010/05/08(土) 15:33:46
>>590
おっぱい星人、ありがとう。
599名無しさん@そうだ選挙にいこう:2010/05/08(土) 15:34:56
>>597
結論、iでもaでもなんでもよい
iがよく使われるのは慣例。
由来はinteger(英語で整数の意味)から
600名無しさん@そうだ選挙にいこう:2010/05/08(土) 15:37:12
indexの"i"かと思ってた・・・_| ̄|○
601名無しさん@そうだ選挙にいこう:2010/05/08(土) 15:37:23
>>597
for文には虚数も入力できるから、xやyを置くよりはiのほうがいいかなって感じ
602名無しさん@そうだ選挙にいこう:2010/05/08(土) 15:41:12
>>596
ありがとうございます。
やっぱりだめでした・・・
603名無しさん@そうだ選挙にいこう:2010/05/08(土) 15:49:34
昔FORTRANというコンピューター言語があって、変数名の頭文字がIだと自動的にINTEGER型になった。
だからFORの変数には何も考えずにIを使うのが習慣だった。
604名無しさん@そうだ選挙にいこう:2010/05/08(土) 15:51:43
ヤーッ、ホーッ、FORTRAN、RAN、RAN
605名無しさん@そうだ選挙にいこう:2010/05/08(土) 16:11:43
数学の行列の表記で添え字にi, jを使用する。
その慣例ってどこかで聞いた。
606名無しさん@そうだ選挙にいこう:2010/05/08(土) 16:43:13
A2からG2までのセルで数値を入力し、空白の前のセルの数値を返すような関数は
ありますか?COUNTA、INDEXを使ったのですが上手く行きませんでした。
607名無しさん@そうだ選挙にいこう:2010/05/08(土) 16:58:16
>>606
IF関数を使いたまえ。
608名無しさん@そうだ選挙にいこう:2010/05/08(土) 16:58:40
途中に空白が無いならこんな感じ
=INDEX(A2:G2,MATCH(MIN(A2:G2)-1,A2:G2,-1))
609名無しさん@そうだ選挙にいこう:2010/05/08(土) 17:58:05
>>599
なるほど、解説ありがd!!
VBAの本にも一言添えてあればいいのにね。
610名無しさん@そうだ選挙にいこう:2010/05/08(土) 18:16:20
>>606
こういうこと?
=LOOKUP(10^10,A2:G2)
G2が空白であればH2を返す
611名無しさん@そうだ選挙にいこう:2010/05/08(土) 19:03:46
>>607
>>608
>>610
ありがとうございました。初心者ですが、これから勉強していこうと思っています。
612cherry ◆d/pQlCc6hA :2010/05/08(土) 22:56:16
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

VBAのイベントについて教えてください。
ブックを開けたときにsheet1のA2セルを選択するようにしたいのですが、
Private Sub Worksheet_Activate() では思った結果になりません。
sheet2を選択した後でsheet1を選択すると、A2セルがActivateになります。
ブックを開けたときはsheet1が選択されているのですが、
こういうのはWorksheet activateとして扱われないのでしょうか?

613複乳:2010/05/08(土) 23:01:20
>>612
bookを開いたときはWorkbook_Open()
Worksheet_Activateは
↓を標準モジュールでも、sheet1でもなくThisWorkbookに記述

Private Sub Workbook_Open()
Sheets("Sheet1").Select
Range("a2").Select
End Sub
614名無しさん@そうだ選挙にいこう:2010/05/08(土) 23:03:31
>>612
そういう時は
thisworkbookのところで

Private Sub Workbook_Open()
Worksheets("sheet1").Activate
Range("a2").Select
End Sub
615名無しさん@そうだ選挙にいこう:2010/05/08(土) 23:03:59
あ、失礼、リロードしていなかった
616cherry ◆d/pQlCc6hA :2010/05/08(土) 23:12:26
>>613
回答ありがとうございます。
「ブックを開いたときにsheet1が選択されている」のは
Worksheet_Activateにはならないんですね。
Sheet1はActivesheetなのに。。。
617名無しさん@そうだ選挙にいこう:2010/05/08(土) 23:17:55
>>616
だってイベントが発生していない(´・ω・`)
618複乳:2010/05/08(土) 23:21:02
bookのActivesheetがsheet1なだけであって
Sheet1から見たActivesheetではない
この辺は全体を理解しなくてもマクロを組めるように、記述が簡素になってるんだよな
スコープとかでぐぐると少しは分かるかもしれないが、vbaだとちとわかりづらいかも
別の言語触ってゲームでも作れば、すぐに理解できるようになるよ
ただ結構な量勉強する必要があるので、興味なければやらない方がいいかもー
619名無しさん@そうだ選挙にいこう:2010/05/08(土) 23:31:53
元からActiveだからじゃないのかな
620名無しさん@そうだ選挙にいこう:2010/05/09(日) 00:43:45
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003

こんばんは。
A〜H列にデータ群1、K〜R列にデータ群2があり、B列とL列は昇順で並び替えています。
データ群1のB列とデータ群2のL列を比較して、B列が大きければA〜H列の行を下方向にシフト、
L列が大きければK〜R列の行を下方向にシフト、同じならそのままにします。
(このあと、価格の値差やその結果を注記に書きますが、説明は省略)

 A   B   C   D   E   F     K   L   M   N   O   P     T   U
連番 番号 品名 数量 単価 価格   連番 番号 品名 数量 単価 価格   注記 値差
 1  A001 BKT  1   12   12     1  A001 BKT  1   12   12
 2  A002 BKT  2   15   30     2  A002 BKT  2   14   28

これをマクロで書いて動作するところまで至ったものの、データ行が700くらいあると
40秒くらい掛かってしまい、シート数が320枚もあるので処理に2時間ほど掛かっています。
もっと速くする書き方があれば教えてください。


With Worksheets(ST)
 For j = 2 To 1000

  If .Cells(j, 2) = "" Then 'データ群1の番号がない?
   If .Cells(j, 12) = "" Then 'データ群2の番号がない?
    Exit For
   Else
    .Cells(j, 21) = -.Cells(j, 16)
    .Cells(j, 20) = "'++"
    .Range(.Cells(j, 1), .Cells(j, 2)) = "↓"
    GoTo 100
   End If
621名無しさん@そうだ選挙にいこう:2010/05/09(日) 00:44:52
'(620の続き)

  Else
   If .Cells(j, 12) = "" Then 'データ群2の番号がない?
    .Cells(j, 21) = .Cells(j, 6)
    .Cells(j, 20) = "'--"
    GoTo 100
   End If
  End If

  If .Cells(j, 2) = .Cells(j, 12) Then '番号が同じとき
   .Cells(j, 21) = .Cells(j, 6) - .Cells(j, 16) '値差
   If .Cells(j, 21) = 0 Then '値差が0のとき
    .Cells(j, 20) = "'="
   Else
    If .Cells(j, 4) = .Cells(j, 14) Then '数量が同じとき
     If .Cells(j, 6) > 0 Then 'データ群1の価格が0より大きいとき
      .Cells(j, 20) = "K"
     Else
      .Cells(j, 20) = "M"
     End If
    Else
     .Cells(j, 20) = "'-"
    End If
   End If
622名無しさん@そうだ選挙にいこう:2010/05/09(日) 00:47:00
'(620-621の続き)

  ElseIf .Cells(j, 2) < .Cells(j, 12) Then
   .Range(.Cells(j, 11), .Cells(j, 19)).Insert Shift:=xlDown
   .Cells(j, 21) = .Cells(j, 6) - .Cells(j, 16)
   .Cells(j, 20) = "'-"
   .Range(.Cells(j, 11), .Cells(j, 19)).Interior.ColorIndex = xlNone
  Else
   .Range(.Cells(j, 1), .Cells(j, 9)).Insert Shift:=xlDown
   .Cells(j, 21) = .Cells(j, 6) - .Cells(j, 16)
   .Cells(j, 20) = "'+"
   .Range(.Cells(j, 1), .Cells(j, 2)) = "↓"
   .Range(.Cells(j, 1), .Cells(j, 9)).Interior.ColorIndex = xlNone
  End If

100
 Next j

End With


よろしくお願いします。
623名無しさん@そうだ選挙にいこう:2010/05/09(日) 01:11:52
>>620
とりあえず、マクロの先頭に

Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
ActiveWindow.DisplayGridlines = False
Application.DisplayPasteOptions = False
Application.DisplayInsertOptions = False
Application.AutoRecover.Enabled = False
Application.ErrorCheckingOptions.BackgroundChecking = False

マクロの最後に

Application.Calculation = xlCalculationAutomatic
ActiveWindow.DisplayGridlines = True
Application.DisplayPasteOptions = True
Application.DisplayInsertOptions = True
Application.AutoRecover.Enabled = True
Application.ErrorCheckingOptions.BackgroundChecking = True

というのを付け足してみ。もしかしたらちょっと速くなるかもよ。
624620:2010/05/09(日) 05:24:11
>>623
ありがとうございます。
3シート分で試してみましたが、ほとんど変わりませんでした。
625名無しさん@そうだ選挙にいこう:2010/05/09(日) 05:50:48
無駄なとこ多すぎるが、根本的な遅い原因はInsertを何度もやることだろ?
Insertしない方法を考えないと。
626名無しさん@そうだ選挙にいこう:2010/05/09(日) 06:16:21
俺はずいぶん長い間Insertしてないけどな。
627名無しさん@そうだ選挙にいこう:2010/05/09(日) 08:21:21
insertは確かに遅くしている要素だけど、1枚40秒→20秒にするのは難しいと思うんだけど
628名無しさん@そうだ選挙にいこう:2010/05/09(日) 10:18:13
まずシートに表(行500x列10くらい)がありまして、
列のある項目が一定の条件のもののみ別のシートに抽出するためにはどうすればいいでしょうか?
ちょうどオートフィルタで抽出するときのような感じなのですが、その抽出パターンがいろいろあって、その抽出パターンの数(30くらいあり)だけシートを追加して作りたいんです。
629名無しさん@そうだ選挙にいこう:2010/05/09(日) 10:36:45
>>627
作業列に連番とソートを利用すりゃ2秒もかからないんじゃないの?
1
2
3
4
5
のうち2と4に挿入したければ
1
2
3
4
5
2
4
と後ろに挿入したい番号を書き出してソートすればいい
630名無しさん@そうだ選挙にいこう:2010/05/09(日) 11:19:43
>>628
フィルターオプションで複数条件は抜き出すことが出来るけれど、他シートに抜き出せないからね(´・ω・`)

マクロが簡単だとは思うけれど、そうこうしているうちに、手作業の方が早そうな気もw
631名無しさん@そうだ選挙にいこう:2010/05/09(日) 13:25:18
ワークシート上でやらずに、配列に読み込んで処理したら?
632名無しさん@そうだ選挙にいこう:2010/05/09(日) 14:27:26
>>630
んなこたーない
他シートから操作すればよい
633名無しさん@そうだ選挙にいこう:2010/05/09(日) 16:34:21
ヒストグラムの作成で、規格上限値と規格下限値の位置に縦線を引きたいのですが
、良い方法はありませんでしょうか?
あと、横軸の目盛45.5から51.1までしかありません。
ヒストグラムの表示範囲を45から55まで広げて、どっちに寄っているか
などを調べたいのです。
634複乳:2010/05/09(日) 17:08:01
>>620
・シートを全て新規ブックにコピーしてみる(エクセル特有の「ずっと使ってるシートが遅くなる」対策)
・挿入の代わりに別シートに写すsheets(1).cells(1,1)value=sheets(2).cells(1,1)value
みたいな感じ。挿入よりは相当早いと思うけどコード書くのめんどくさいんだよな
じゃなきゃ>>631の通り、配列。
・新規PCを購入。
・ウィルス対策ソフトを入れてるなら一時的に切る。
635名無しさん@そうだ選挙にいこう:2010/05/09(日) 17:58:35
FORTRANって勉強する気にならんなぁ。
636名無しさん@そうだ選挙にいこう:2010/05/09(日) 19:12:09
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

セルA50の上※個のセルが「▼」なら「OK」と表示
セルA50の上※個のセルが「△」なら「NO」と表示
どちらにも該当しなければブランク

という構文を書きたいのですが「A50」は相対参照
「※」は絶対参照として「B2」セルに書くものとしてどのように書けば良いでしょうか?
宜しくお願いします。。。

637名無しさん@そうだ選挙にいこう:2010/05/09(日) 20:17:38
>>636

=IF(COUNTIF(A1:A49,"▼")=※1,"OK",IF(COUNTIF(A1:A49,"△")=※2,"NO",""))

(式中の※1、※2は>>636の▼の※個→※1、△の※個→※2としています。)
638複乳:2010/05/09(日) 20:19:26
>>636
menndoinala
B2は数字
=IF(INDIRECT("r"&50-B2&"c1",0)="▼","ok","")&IF(INDIRECT("r"&50-B2&"c1",0)="△","no","")
639636:2010/05/09(日) 20:33:19
>>637-638
早速のレスありがとうございます・・・こちらの書き方がまずかったです、すいません。。。
あらためまして以下内容にてお願い致しますm(_ _)m

セルA50の上※個のセルがすべて「▼」なら「OK」と表示
セルA50の上※個のセルがすべて「△」なら「NO」と表示
どちらにも該当しなければブランク

例)セル「B2」が「3」の場合
  A47・A48・A49がすべて「▼」なら「OK」と表示
  A47・A48・A49がすべて「△」なら「NO」と表示
  どちらにも該当しなければブランク

セル「B2」の値を色々と変えて調べたいので「B2」を絶対参照としています。
宜しくお願い致します。。。
640複乳:2010/05/09(日) 20:50:17
>>639
あああああああああしねぼけええええええあああああああああ
=IF(COUNTIF(INDIRECT("a"&(50-B2)&":a49",1),"▼")=B2,"ok","")&IF(COUNTIF(INDIRECT("a"&(50-B2)&":a49",1),"△")=B2,"no","")
641名無しさん@そうだ選挙にいこう:2010/05/09(日) 20:54:14
>>640
なに? 強迫観念でも持ってるの?
文句言いながらだったら、回答しなくてもいいじゃん…
642名無しさん@そうだ選挙にいこう:2010/05/09(日) 20:58:15
いや、気持ちは分かる
=IF(COUNTIF(OFFSET(A50,-(B2),0):A49,"▼")=B2,"OK",IF(COUNTIF(OFFSET(A50,-(B2),0):A49,"△")=B2,"NO",""))
643636:2010/05/09(日) 21:42:40
>>640>>642
ありがとうございます!
こちらのセルナンバーにあてはめてやってみます!
644620:2010/05/09(日) 22:23:24
>>625>>629
ありがとうございます。
そのアイデアはGoodかも・・・。
マクロを書いて半年くらいですが、なんとかやってみます。

>>631
ありがとうございます。
私が持ってるExcel VBAの本には、配列について書かれていませんでした。
それだけ高度なことだと思いますので、継ぎ足し+ソートのあとで
配列の勉強をしてみます。

>>634
ありがとうございます。
新規PC購入は会社の都合上、無理です。
(ご察しのとおり、5年前に購入した古いPCです)
ウィルス対策ソフトを切るのもいいアイデアかもしれません。
ウィルススキャンのバージョンを上げてから、ファイルを開くだけで
時間が掛かるようになりました。
他の2項目は、私には難しくてよくわかりませんでした・・・ orz
645636:2010/05/09(日) 22:48:48
たびたびで申し訳ないのですが・・・
もう一つ条件を足したものでお願いできないでしょうか
宜しくお願いします。。。

◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆
セルA50が「△」でなお且つA50の上※個のセルがすべて「▼」なら「OK」と表示
セルA50が「▼」でなお且つA50の上※個のセルがすべて「△」なら「NO」と表示
どちらにも該当しなければブランク

「※」は絶対参照として「B2」セルに書く整数
◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆

お手数かけますがよろしくお願いいたします。。。
646名無しさん@そうだ選挙にいこう:2010/05/09(日) 22:55:30
>>645
これくらいは勉強して出来るようになろう
=IF(AND(COUNTIF(OFFSET(A50,-(B2),0):A49,"▼")=B2,A50="△"),"OK",IF(AND(COUNTIF(OFFSET(A50,-(B2),0):A49,"△")=B2,A50="▼"),"NO",""))
647複乳:2010/05/09(日) 22:56:15
>>644
エクセルはシート以外にも無駄なデータをファイルの中に生成しているので、そのせいで遅くなることがある。
・シートを全て新規ブックにコピー
はそのまま。デスクトップでもどこでもいいからファイルを作って、そこに今使ってるファイルのシートを全てコピーする。
一見無駄に思えるかもしれないが、試すだけ試してみるといい。マクロのコピーも忘れずにな

後は、tempファイルの削除か。
PCの起動し、なにもアプリケーションを使っていない状態でC:\WINDOWS\Tempの中身を全部消す。
>>645
=IF(and(a50="△",COUNTIF(INDIRECT("a"&(50-B2)&":a49",1),"▼")=B2),"ok","")&IF(and(a50="▼",COUNTIF(INDIRECT("a"&(50-B2)&":a49",1),"△")=B2),"no","")
試してないけど動くんじゃないかな
648636:2010/05/09(日) 23:20:53
>>646
ありがとうございます!やっとクリアできました!

>>647
ありがとうございます・・・が、何故か表示されず・・・
だけどど同じ目的でも違う構文の書き方があるんだなとわかりました
INDIRECT(参照文字列,参照形式)についても勉強してみます!
649名無しさん@そうだ選挙にいこう:2010/05/09(日) 23:28:58
>>633
グラフの範囲は軸の右クリックで変更できる
色違いの目盛り線を引くには、系列を2つ増やしてグラフが垂直の直線になるようなダミーデータを追加する
650名無しさん@そうだ選挙にいこう:2010/05/10(月) 12:13:12
エクセル2007を使っています
印刷するにあったってA4ならどこまで入るとか表示させることってできますか?
あと、20列あったとして、A4に入るサイズに列のサイズを指定する方法ってありますか
651名無しさん@そうだ選挙にいこう:2010/05/10(月) 12:50:32
>>650
一度印刷プレビューを出してキャンセルすると、1ページごとの区切り(点線)がシートに表示されます。
印刷範囲を限定しても余白が大きくなるだけで、セルをめいっぱい広げる機能はないと思います。
電卓でサイズを計算して自分で設定ですね。
652名無しさん@そうだ選挙にいこう:2010/05/10(月) 16:49:51
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

Q列・R列・S列に並んだ数値をU列にも表示したいのですが
参照セルを「U11」としてそこに「Q」→「R」→「S」と打ち込むだけで
U列の数値が「Q」→「R」→「S」と切り替わるようにするためには
U列にどのように書けばいいでしょうか?
よろしくおねがいします
653名無しさん@そうだ選挙にいこう:2010/05/10(月) 18:30:11
>652
U列に表示したいのに 参照セルをU11にする っていうのが???だけど、とりあえず
U12に
=INDIRECT($U$11&ROW())
と入力して、以下フィルコピーしてみてください
654名無しさん@そうだ選挙にいこう:2010/05/10(月) 19:13:34
>>653
わー出来ました!ありがとうございます!
表を12行目までで区切って使ってますのでこれで問題なしです
助かりました!
655名無しさん@そうだ選挙にいこう:2010/05/10(月) 20:08:09
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

シート名を特定のセルに表示させたい場合
セルの構文は何と書けば良いでしょうか?
宜しくお願い致します
656Cherry ◆d/pQlCc6hA :2010/05/10(月) 20:41:30
>>655
ってワークシート関数でできるんだろうか??
657名無しさん@そうだ選挙にいこう:2010/05/10(月) 20:58:02
CELL関数でファイル名+ブック名+シート名の文字列が取れる
あとはRIGHT関数か何かでシート名の部分だけを切り取ればいい
658名無しさん@そうだ選挙にいこう:2010/05/10(月) 21:01:07
>>655
どこのセルでもA1は変えなくてOK
=RIGHT(CELL("filename",A1),LEN(CELL("filename",A1))-FIND("]",CELL("filename",A1)))
659名無しさん@そうだ選挙にいこう:2010/05/10(月) 21:02:40
超手抜きバージョン
=MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,99)
660名無しさん@そうだ選挙にいこう:2010/05/10(月) 21:04:35
フォルダ名に ] が含まれてると使えないね
661名無しさん@そうだ選挙にいこう:2010/05/10(月) 21:06:03
これの方がいいか
=REPLACE(CELL("filename",A1),1,FIND("]",CELL("filename",A1)),"")
662名無しさん@そうだ選挙にいこう:2010/05/10(月) 21:07:52
そうそう、 ] が含まれていると使えない。
その場合は拡張子で判断するのがいいのかと思うけれど、xlsとxlsxがあるからね(´・ω・`)
663名無しさん@そうだ選挙にいこう:2010/05/10(月) 21:09:15
>>658-659
どちらでも問題無く表示されました。ありがとうございました
664名無しさん@そうだ選挙にいこう:2010/05/10(月) 21:22:14
フォルダ名に]が入ってても使える数式できたよー
=MID(CELL("filename",A1),FIND("?",SUBSTITUTE(CELL("filename",A1),"]","?",LEN(CELL("filename",A1))-
LEN(SUBSTITUTE(CELL("filename",A1),"]",""))),1)+1,LEN(CELL("filename",A1))-FIND("?",SUBSTITUTE(
CELL("filename",A1),"]","?",LEN(CELL("filename",A1))-LEN(SUBSTITUTE(CELL("filename",A1),"]",""))),1))
665名無しさん@そうだ選挙にいこう:2010/05/10(月) 21:25:27
ちょっと改良して短くしてみた
=MID(CELL("filename",A1),FIND("?",SUBSTITUTE(CELL("filename",A1),"]","?",
LEN(CELL("filename",A1))-LEN(SUBSTITUTE(CELL("filename",A1),"]",""))),1)+1,
LEN(CELL("filename",A1)))
666名無しさん@そうだ選挙にいこう:2010/05/11(火) 02:09:39
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

2点質問なのですが
1.同じブック内で他のシートのセルB1の数値を参照したいのですが
 ='シート名'!B1 と入力しても「0」と表示されてしまいます。
 試しに数値の入っている他のセルでやってみても結果は同じでした。
 何が原因でしょうか?

2.質問1と同様の操作で参照先に関数を含む文字列が入力されていて
 その文字列ではなく表示されている数値を参照したい場合 
 どのように入力すれば良いでしょうか?

以上2点についてお願いします 
667名無しさん@そうだ選挙にいこう:2010/05/11(火) 04:54:57
>>666
1,とりあえず参照元のセルの書式を確認して合わせてみる。
668名無しさん@そうだ選挙にいこう:2010/05/11(火) 06:14:16
>>666
いや、できるはず。
入力じゃなくて「=」を入力してから、そのセルを選択してENTERして

2については自動的にそうなるから
669名無しさん@そうだ選挙にいこう:2010/05/11(火) 10:26:51
>>651
印刷プレビューすると、
ツール→オプション の ウィンドウオプションで「改ページ」にチェックがつくんだよ。
670名無しさん@そうだ選挙にいこう:2010/05/11(火) 14:04:00
>>667-668
出来ましたありがとうございます。
昨日やった時はなぜかできなかったんですが・・・
671名無しさん@そうだ選挙にいこう:2010/05/11(火) 16:02:49
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】

セルを削除すると、上へシフト、左へシフトというのが出ます。
これをせずに削除だけすることはできないのでしょうか?
672名無しさん@そうだ選挙にいこう:2010/05/11(火) 16:19:41
>671
[Delete]キーを押してみたこと、ありますか?
673名無しさん@そうだ選挙にいこう:2010/05/11(火) 16:20:39
クリアしてください
削除してシフトしないと
落とし穴になります。
削除は、セルそのものを消すこと。
内容だけを消す時は、クリアしてね。
674名無しさん@そうだ選挙にいこう:2010/05/11(火) 16:49:11
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

SUMIF関数について質問です
L13からL42で数値が1以上のD13からD42の数値を合計したいのですが
=SUMIF(L13:L42,">=1",D13:D42)
と書くと「0」が表示されます。
関数は合ってると思うのですが何が原因でしょうか?
675名無しさん@そうだ選挙にいこう:2010/05/11(火) 17:41:43
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

同じブック内の複数ページの同じ番地のセルに同じ文字列を一括コピーする方法ってありますか?
1ページずつペタペタ貼ってると時間掛かるしミスもしそうなんでお願いします
676名無しさん@そうだ選挙にいこう:2010/05/11(火) 18:34:23
>675
コピー操作はいつも通りにしてから、

貼り付け先シートを複数選択(いわゆる作業グループ状態)してから
貼り付け先セルを選択して[Ctrl]+[V]
作業グループ解除(選択していないシートのタブをクリック)
をやってみてください。
677名無しさん@そうだ選挙にいこう:2010/05/11(火) 18:57:31
>674
配列数式というものを使います。
結果を表示したいセルに
=SUM(IF(L13:L42>=1,D13:D42,0))  と入力(Enterはまだ押さない)してから
[Shift]と[Ctrl]を押しながら[Enter]を押してみてください。

数式ボックスに {=SUM(IF(L13:L42>=1,D13:D42,0))} と表示されたらOKです。
678名無しさん@そうだ選挙にいこう:2010/05/11(火) 20:28:21
>>674
>>677は的外れのような。

関数は合っている。たぶんL列かD列のどちらか(もしくはどっちも)文字列になっていると思うのでチェックしてみ
679名無しさん@そうだ選挙にいこう:2010/05/11(火) 20:37:23
>>677
ありがとうございます
やってみたのですがD13〜D42すべての数が合計されてしまいます
ちなみにL13〜L42の数値は1.42〜0.32です
それとなぜSUMIF関数が使えないのか理由についても教えていただけないでしょうか
因みにテーブル設定しています
680名無しさん@そうだ選挙にいこう:2010/05/11(火) 21:09:39
>>678
ありがとうございます
おっしゃる通り文字列になっていました
数値に直すと>>677さんの方法でも正しく表示されました
お手数かけてすいませんでした
681677:2010/05/11(火) 21:14:04
>678
D列、L列とも数値だと結果は同じでした。ただ、L列の方がスペースや文字の場合も条件を満たすものとして
計算してしまったので、>677の方法は誤りになりますね。

>679
解決してなによりでした。
682名無しさん@そうだ選挙にいこう:2010/05/11(火) 21:37:58
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

例えばA1に色男と入力してあるとして、C1に=A1と入力すると「色男」と表示されますが
A1色男のフォントの色をC1にも反映させるには、どうすれば良いのですか?
683名無しさん@そうだ選挙にいこう:2010/05/11(火) 21:46:41
>>682
=A1で書式は無理。持ってこれない

だけど、図のリンク貼付けであれば見た目は書式を引っ張ってこられる
684名無しさん@そうだ選挙にいこう:2010/05/11(火) 21:53:01
>682
2個前までのスレにはテンプレで注意事項とかいろいろあったけど、1個前からなくなってましたね。
以下はExcel総合相談所89のレスbTから一部抜粋です。
〜引用始め
★ Excelで出来ないこと、仕様上の制限 (括弧内は代用法)
 ▼数式・関数
  ・ 表示形式以外の書式の取得設定、書式情報を条件とする数式 (ユーザー定義関数)  ←ここ注意
  ・ 関数式でセルの選択状態を取得する (VBA)
  ・ セルの値でパスを補完して、開いてないブックのセルを参照する (VBA)
  ・ 入力したセルに結果を返す (VBA)
  ・ 範囲を引数にしての文字列連結 (ユーザー定義関数)
  ・ 値の書き換え、値の保持 (VBA)
  ・ 複数の結果を抽出、不定な数の結果を返す (VBA、結果の最大数が解っていれば最大数以上の式を論理式で組む)
  ・ 空白のセルの部分を上詰め、左詰めなどで表示する (作業セルを使って別セルに詰めて表示なら可能、それ以外はVBA)
  ・ VLOOKUP,HLOOKUP,MATCH等の関数で、検索語を全半角両方にマッチさせる (ユーザー定義関数)
〜引用終わり

ただ、エクセルの「カメラ機能」ってのを使えば幸せになれるかも。>683さんのリンク貼り付けがこれになるのかな?
http://hp.vector.co.jp/authors/VA014071/tips/camera.html
685名無しさん@そうだ選挙にいこう:2010/05/11(火) 21:59:44
=COUNTIF(A1:A10,"○")
=COUNTIF(A1:A10,"=○")
これって同じですよね?
686名無しさん@そうだ選挙にいこう:2010/05/11(火) 22:20:56
>>676
できました!助かりました、ありがとうございます!
ここは親切な方が多いですね
また何かありましたら宜しくお願いしま〜すm(_ _)m
687名無しさん@そうだ選挙にいこう:2010/05/12(水) 11:42:03
http://www.nicovideo.jp/watch/sm10686926
20分黙って見ろ
688あぼーん:あぼーん
あぼーん
689名無しさん@そうだ選挙にいこう:2010/05/12(水) 20:12:43
>>688
なにこれ
690名無しさん@そうだ選挙にいこう:2010/05/13(木) 02:50:11
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

2010/1/3をmonth関数で抽出する際に,この日付のセルをシリアル値にしました。
シリアル値はちゃんと1になるのですが、数式の結果が1月1日となります。
2010/2/1だと1月2日となります。なしてでしょうか?
691名無しさん@そうだ選挙にいこう:2010/05/13(木) 03:27:09
>>690
>数式の結果が1月1日となります。
>2010/2/1だと1月2日となります。なしてでしょうか?

数式が間違っているから結果がそうなるのですよ。
692名無しさん@そうだ選挙にいこう:2010/05/13(木) 05:03:17
>>690
Excel2002のヘルプより

>Excel では、日付を計算するために、日付が一連のシリアル値として格納されます。
>既定では、1900 年 1 月 1 日はシリアル値 1 となり、2008 年 1 月 1 日はシリアル値 39448 となります。
>これは、1900 年 1 月 1 日から 39,448 日が経過しているためです。
>また、時刻は一日の一部として小数値で格納されます。

で、month関数が返すのは月の数値。
(1900/)1/1〜1/12にしかなりようがない。

693名無しさん@そうだ選挙にいこう:2010/05/13(木) 09:21:24
>690
その数式のあるセルの表示形式が"日付"になっていませんか?
A1セルに2010/1/3などの日付が入っていて、B1セルが=month(A1)などの数式があると仮定して、
B1セルに 月 を表示したいなら、B1セルの表示形式を"標準"にします。
"1月"など"月"を付加して表示したければ、書式のユーザー設定で #"月" などと設定するか、
数式を =month(A1)&"月" などとします。(後者では結果が文字列になるので計算には使えない)
694名無しさん@そうだ選挙にいこう:2010/05/13(木) 11:34:52
ごめんください
ちょっと情報が情報なので現物はお見せできないのですが
当方が作ったとあるデータベースを社内で使いまわしているのですが
共有などを使わずに単純に個々人からのフィードバックを回収・集約しているのですが
その中のうちωさんから戻ってきたファイルだけ大きさが倍くらいに増えているのですが
ωさんのファイルの中身のシート内データを全てコピーして新規Excelに貼り付けて保存すると元の大きさに戻るのですが
これはいったい何が原因なのでしょうか?
695名無しさん@そうだ選挙にいこう:2010/05/13(木) 11:46:10
>>694
ctrl+endを押してみ。恐らく空白セルになるはずだから。
普通は入力されているセルでとまる。
696名無しさん@そうだ選挙にいこう:2010/05/13(木) 12:28:07
>>694
Excelではよくあること。
編集を繰り返しているとファイルがどんどん大きくなる。
全データをコピーしなおせば小さくなる。
697名無しさん@そうだ選挙にいこう:2010/05/13(木) 12:31:30
>>691
違ってるのは数式じゃなくて表示形式じゃね?
698名無しさん@そうだ選挙にいこう:2010/05/13(木) 13:26:27
>>693
標準にすると正しく表示されました。助かりました。ありがとうございます。
699名無しさん@そうだ選挙にいこう:2010/05/13(木) 17:20:41
【1 OSの種類】WindowsXP
【2 Excelのバージョン】Excel2003
【3 VBAが使えるか】いいえ
【4 VBAでの回答の可否】可

Excelファイルで選択したセルの行に色を付加するマクロを組んだ表で
JPEG画像へのハイパーリンクを設定しています。
Excelファイル単体からハイパーリンクを選択するとExcelはそのままで
JPEG画像のみInternetExplorer8に表示されます。
しかし、InternetExplorerからExcelファイルを表示させた場合に於いて
ハイパーリンクの飛び先はExcelファイルが開いていた同じウィンドウ上で
開かれてしまい、Excelファイルは戻るボタンを押さない限り消えます。
Webページで保存した場合はアクティブなセルの色変更が出来ないので
HTMLタグで直接Excelファイルへのアクセスを行っている状況です。
ハイパーリンクで設定しているJPEG画像を別ウィンドウで開くようにする
何か設定方法はないものでしょうか?
700名無しさん@そうだ選挙にいこう:2010/05/13(木) 21:01:56
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【相談内容】計算式の最適化をお願いします。

   A   B   C   D   E  ・・・・ I    J
1 日付 開始 終了 氏名 給料    時給表
2  1  9:00 17:00  山田       斉藤  800
3  1  9:00 17:00  佐藤       佐藤  900
4  1  12:00 20:00  田中       田中  800
5  1  12:00 20:00  斉藤       山田  900
6  2  9:00 17:00  山田           

時給や時間は適当です。
E列には (C列:勤務終了 ― B列:勤務開始)×時給 の式を出したい
関数や機能のボキャブラリーが貧困なため、↓のような力技でやってます
E2:
(C2-B2)*IF(D2=$I$2,$J$2,IF(D2=$I$3,$J$3,IF(D2=$I$4,$J$4,IF(D2=$I$5,$J$5,0))))

実際にはスタッフが15人いて、もっと膨大な量の計算式になっています。
もっとスマートに計算する方法を教えて下さい。マジで助けて下さい。
701名無しさん@そうだ選挙にいこう:2010/05/13(木) 21:33:46
山田の横の列に時給を入れれば計算が簡単だね
時給はVLOOKUPで引っ張ってくればいい
702700:2010/05/14(金) 04:09:06
>>701
VLOOKUPで予想以上にスマートな計算式になりました
助かりました。ありがとうございました。
703名無しさん@そうだ選挙にいこう:2010/05/14(金) 08:20:37
excelで巨大な表があります。
ある部分ごとに自分でページを指定して印刷したいのですが
いい方法ありますか?

例えばA1:L300の表があって、
1ページ目→B1:J8を印刷
2ページ目→B9:J12を印刷
3ページ目→B13:J20を印刷
4ページ目→B21:J38を印刷
5ページ目→B39:J42を印刷




みたいな感じで印刷したいんです。
704名無しさん@そうだ選挙にいこう:2010/05/14(金) 09:13:42
>703
前スレの124で質問があったのと似てますね。
印刷範囲をとびとびに指定するだけです。
ファイル→ページ設定→シートタブ
印刷範囲を B1:J8,B9:J12,B13:J38・・・・・と指定できます。
705名無しさん@そうだ選挙にいこう:2010/05/14(金) 10:42:18
▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━
【1 OSの種類         .】 WindowsXP SP3
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 セルのロック シート 解除 削除

宜しく御願いします。
指定したシートの中で、セルのロックが外されているセルだけ一括削除したいのですが、
どのようにしたら宜しいでしょうか?
例)シート1 A3 B5 B6・・・などセルロックが多数外されてる(入力用)箇所のセルの
値を一括で削除(クリア)をしたいです。
706名無しさん@そうだ選挙にいこう:2010/05/14(金) 12:14:21
▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━
【1 OSの種類         .】 WindowsXP SP2
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 エクセル 表 逆引き 検索 など

よろしくお願いします。

Sheet1のA列に個人名が入力されていて、1行目には日付が入力さてているシフト表があります。

Sheet2にはA1に関数でTODAYが入力されていて、A1の日付に対応して出勤するひとの名前をA列に表示したいのです。

例えば太郎くんの 5月14日の シフトは"遅番" のように名前と日付でシフトを求めるのではなく

5月14日の 遅番は "太郎くん" みたい 日付とシフトで名前を求めたいのですが、うまくいきません。

どうかご教授願います。




707名無しさん@そうだ選挙にいこう:2010/05/14(金) 17:13:45
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 チェックボックス 色付け

シートにチェックボックスを貼り付け、そのOn/Offで対応するセルの色を変
えたい(白/赤)と思っています。

書式設定を使って、チェックボックスと使用しないセル(A1)をリンクさせ、
その値がTrueかFalseを確認してから使用するセル(B1)の色を変える方法
をやってみたのですが、A1を介さずに直接B1の色を変更するにはどうした
ら良いでしょうか? よろしくお願いします。
708名無しさん@そうだ選挙にいこう:2010/05/14(金) 18:15:36
無理じゃね?コントロールを直接参照する方法がない
709名無しさん@そうだ選挙にいこう:2010/05/14(金) 18:48:31
>>707
当方2002しかもっていないので2007でできるか解らないが
コントロールツールボックスのほうのチェックボックスだったら可能じゃない?
VBAで制御することになるが。
710名無しさん@そうだ選挙にいこう:2010/05/14(金) 19:23:31
【1 OSの種類         .】 Windowsxp
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 マクロ 分岐 単位 条件付け等

品物の発送用のデータを入力する際にC/No.1-30といった書き方を
するのですがC/No.の部分を自動で表示させて数字の部分だけを
打ち込めばいいようにしたいと思っています。
自分で調べた結果、書式設定で"C/No."#-##とやればC/No.1-30
という表示にできることが分かりましたが、C/No.31-131等の
データを表示しようとすると上手くいきません。
今は"C/No."###-###を設定してC/No.1-30やC/No.31-131等は手打ちで
やっているのですが130ならC/No.1-30、31131ならC/No.31-131
というように数字だけでC/No.のところが表示されるようにはできないのでしょうか?
どなたかご教授お願いいたします
711名無しさん@そうだ選挙にいこう:2010/05/14(金) 19:39:32
>710
ハイフンをどこに入れるのか?という条件が指定されてない以上、数字だけ示して解決する問題ではありません。
郵便番号のように、必ず7桁の数字→先頭3桁+残り4桁 という規則はありませんよね?

31131→3−1131なのか、31−131なのか、311−31なのか、どうやって判断させるのですか?
712名無しさん@そうだ選挙にいこう:2010/05/14(金) 20:08:26
【1 OSの種類         .】 WindowsXP SP2
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 INDEX CHOOSE
713名無しさん@そうだ選挙にいこう:2010/05/14(金) 20:12:41
間違いました。
714名無しさん@そうだ選挙にいこう:2010/05/14(金) 20:20:06
>>705
Option Explicit
Sub fuku()
Dim nyu, sex
Set nyu = UsedRange
For Each sex In nyu
If sex.Locked = False Then
sex.ClearContents
End If
Next
End Sub

>>706
シートの構成が全然わからん
715名無しさん@そうだ選挙にいこう:2010/05/14(金) 20:24:08
>>707
CheckBox1_Changeじゃだめ?
Private Sub CheckBox1_Change()
If CheckBox1.Value = True Then
Range("B1").Interior.ColorIndex = 6
Else
Range("B1").Interior.ColorIndex = 1
End If
End Sub

>>710
"C/No."@で我慢する
もしくはリストを用意しておき、vlookupかなんかでテキトーにやる
716710:2010/05/14(金) 20:34:05
>>711
法則性はありません。あるとしたら3桁のときは1-99まで5桁は10-999まで
というような感じになってしまうので・・・
>>715
ありがとうございます。@で直接文字列が表示されるんですね。
検索不足でした;;
717名無しさん@そうだ選挙にいこう:2010/05/14(金) 20:41:55
>>716
必ず3桁が0-00、5桁が00-000の形なら立派な法則性だろう。
4桁とかの場合はないのか?
718名無しさん@そうだ選挙にいこう:2010/05/14(金) 21:13:10
【1 OSの種類         .】 WindowsXP SP2
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 3D参照

INDEXやHLOOKUP関数は別のシートでセルの形式が違う場合
値を返すことが出来ないのでしょうか?またその場合、どんな関数を
使えば良いのでしょうか?
719名無しさん@そうだ選挙にいこう:2010/05/14(金) 22:30:13
説明がうまくできなくてすいません。
下図のようなシートの構成でsheet2のA3:A5の部分についての相談です
どうかお願いします。
Sheet1
  A    B   C   D   E    F
1     5/1  5/2  5/3  5/4  5/5
2 太郎 遅番 早番 中番 夜勤 休み
3 花子 中番 遅番 夜勤 休み 早番
4 次郎 早番 夜勤 休み 遅番 中番 
5 節子 夜勤 休み 早番 早番 夜勤 

Sheet2
    A
TODAY()
   ↓
1   5/2  
2  出勤者
3  太郎
4  花子
5  次郎










720名無しさん@そうだ選挙にいこう:2010/05/14(金) 22:58:04
>>709>>715
レスありがとうございました。すぐにでも試したいのですが、実家のPCに
excelが入っているためできません。
自宅PCにはExcelがなく、実家がネット環境がないため現地で調べる事が
できないという複雑な状況です。

>コントロールツールボックスのほうのチェックボックスだったら可能じゃない?
こちらは「開発」→「挿入」の中のActiveXコントロールのことでよかったでし
ょうか?
721名無しさん@そうだ選挙にいこう:2010/05/14(金) 23:11:15
>706,719
>706では  >5月14日の 遅番は "太郎くん" みたい 日付とシフトで名前を求めたい
とあるのに、>719では
Sheet2
    A
TODAY()
   ↓
1   5/2  
2  出勤者
3  太郎
4  花子
5  次郎
と、勤務指定(シフト)の指定がありません。 単に「出勤する人」の羅列でいいのですか? それとも
   ↓
1   5/2  
2  出勤者 シフト
3  太郎    早番
4  花子    遅番
5  次郎    夜勤
みたいに名前の脇に勤務指定を付加していいのですか?
722複乳:2010/05/14(金) 23:20:14
>>718
形式って書式設定のこと?それなら別シートとか関係無い
大方数式が間違ってると思うので、ここに書いたら添削してあげるよ
>>719
全てsheet2
A3=INDIRECT("sheet1!r"&MATCH(B3,INDIRECT("sheet1!c"&MATCH($A$1,Sheet1!$A$1:$BA$1,0),0),0)&"c1",0)
A6までオートフィル
B3=早番 B4=中番 B5=遅番 B6=夜勤
>>720
無料オフィスっぽいソフト
ttp://ja.openoffice.org/
>>721
被った。スマン。聞く前に作っちゃった方が早いよ
723名無しさん@そうだ選挙にいこう:2010/05/14(金) 23:25:18
>>721
レスありがとうございます。
出勤する人の羅列がしたいです、よろしくお願いします。
724名無しさん@そうだ選挙にいこう:2010/05/15(土) 00:30:35
>>707
フォームのチェックボックスなら
下を作ってチェックボックスにマクロ登録するといいかも

Sub 色変更()
If ActiveSheet.CheckBoxes(Application.Caller).Value = xlOn Then
ActiveSheet.Range("B2").Interior.ColorIndex = 3
Else
ActiveSheet.Range("B2").Interior.ColorIndex = 2
End If
End Sub
725名無しさん@そうだ選挙にいこう:2010/05/15(土) 10:26:12
すいません、関数についてなのですが質問させてください。


例えば、8:00から8:59の間を検索し、その間にあったものの個数をカウントしたいので
現在countifにて試しているのですが、検索条件に何と入れて良いか分からず困っています。

8:00から8:59の間のものを抽出するには検索条件にどのように入力すればいいのでしょうか。

Excel2003でwindowsXPです、

わかりにくい質問と思いますが、よろしくお願いします。
726名無しさん@そうだ選挙にいこう:2010/05/15(土) 11:05:40
>>725

=SUMPRODUCT((HOUR(A1:A10)=8)*1)
=SUMPRODUCT((TEXT(A1:A3,"h")="8")*1)

countifだと出来ないと思う。
727名無しさん@そうだ選挙にいこう:2010/05/15(土) 11:18:14
>>726
凄い。ありがとうございます。
おかげさまで助かりました。
728名無しさん@そうだ選挙にいこう:2010/05/15(土) 11:26:04
重いSUMPRODUCTねぇ。
COUNTIFなら
=COUNTIF(A1:A10000,">=8:00")-COUNTIF(A1:A10000,">=9:00")
だが、時刻別に網羅するならピボットテーブルな。
COUNTIFも駄目だ。
729名無しさん@そうだ選挙にいこう:2010/05/15(土) 14:21:29
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 エクセル offset グラフ 空白 セル

A列とX軸、B列をY軸として最新100件のデータだけを表示する動的なグラフを作成しています。
http://office.microsoft.com/ja-jp/excel/HA011098011041.aspx
このURLやいくつかのサイトを参考に、名前を定義する方法でグラフを作ることができることがわかったのですが、実はA列B列には全て式がはいっており、条件の満たさないもの(まだ未入力のもの)は""となっています。

空白ではないので、URL先にある=OFFSET(Sheet1!$A$1,COUNTA($A:$A)-100,0,100)は使うことができません。
そこでCOUNTA($A:$A)の部分を
=COUNTA($A:$A)-COUNTBLANK($A:$A) や
=SUMPRODUCT(($A:$A<>"")*1)
=ROWS($A:$A)-COUNTBLANK($A:$A)
などに変更したのですが、いざその名前をグラフの値にいれると
「このワークシートの数式に、1つまたは複数の無効な参照が含まれています。〜」
とでてしまいます。COUNTA($A:$A)の場合はエラーがでません。
しかしその場合は式がはいっているので全てゼロのグラフになってしまいます。
どこかに見落としがあるのかと何度も作りなおしましたが、さっぱりわかりません・・・。
わかりにくいかもしれませんが、どうかよろしくお願いします。
730名無しさん@そうだ選挙にいこう:2010/05/15(土) 15:00:30
>>722
A15のセルに
=HLOOKUP(A16,リスト!AC2:BV2,2,0)
と書きました。
0の部分をTURE、1、FALSEとしてもエラーでした。
731複乳:2010/05/15(土) 15:07:57
>>730
=HLOOKUP(A16,リスト!AC2:BV3,2,0)
範囲には結果の出るセルまで含めないとダメよん
732名無しさん@そうだ選挙にいこう:2010/05/15(土) 15:51:12
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 自動改行

一行が凄く長いテキストファイルがあるのですが、そのファイルを
エクセルに外部入力で読み込ませ、文章を100行目で区切って行列表示させたいです。
そういうことが可能ならば、どのようにすればよいのでしょうか?

テキストファイル時
1.....10000

エクセル入力時
1...100
101...200
(省略)
9901...10000

という風にしたいです。
733複乳:2010/05/15(土) 16:22:20
>>732
文章を100行目は100文字目ということか?
734複乳:2010/05/15(土) 16:25:43
100文字という前提で
A1=その文章
B1=MID($A$1,((ROW()-1)*100+1),100)
B2以下、下へオートフィル
735名無しさん@そうだ選挙にいこう:2010/05/15(土) 16:29:30
>>733
分かりにくくて申し訳ありません。>>732の文章とは違う内容になってしまうのですが、
正確には、単語A, 単語B, 単語C, ... 単語xという風なcsv形式のテキストで、
単語が1万個ほどカンマで区切られて載っています。(すべて最初の1行に)
それを、
単語A...単語x(100単語)
単語y(101単語)..単語z(200単語)
省略
単語xx(9901単語)..単語yy(10000単語)
という風にして、エクセルに行列表示させたいです。
736複乳:2010/05/15(土) 16:34:50
>>735
なんとなくわかった
後は単語A...単語x(100単語) はどういうふうに表示する?
A1,B1とセルを横に並べて分けるか、一つのセルにいれるか
737名無しさん@そうだ選挙にいこう:2010/05/15(土) 16:37:16
>>736
ご理解、ありがとうございます。
A1, B1と分けて表示させたいです。
単語AはA1、単語BはB1、
単語yはA2、といった具合にしたいです。
738複乳:2010/05/15(土) 16:51:38
>>737
A1に文字列を入れる。BからCW列に表示。
エクセルの仕様で1セルに入る文字は30000文字ちょいなので、きりのいいところで切ってつなげるといい
Option Explicit
Sub a()
Dim fuku, i
fuku = Split(Cells(1, 1), ",")
For i = 0 To UBound(fuku)
Cells(Int(i / 100) + 1, (i Mod 100) + 2).Value = fuku(i)
Next
End Sub
739名無しさん@そうだ選挙にいこう:2010/05/15(土) 17:11:52
>>738
ありがとうございます。
これからやってみます。
740名無しさん@そうだ選挙にいこう:2010/05/15(土) 18:31:58
>>738
ありがとうございます!
完璧でした!
741706:2010/05/15(土) 19:03:24
>>721
>>722
遅くなりましたができました!!
ありがとうございます!!
742名無しさん@そうだ選挙にいこう:2010/05/15(土) 20:18:11
【1 OSの種類         .】 WindowsXP SP3
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】

固定長列のCSVファイルからIDと氏名だけを切り出しているんだが、
氏名の後ろにスペースが入るんで困っている。

(例)山田□太郎□□□□□
   森 茂子□□□□□□

□がスペース

この後ろのスペースを計算式かVBAで削除できる? (´・ω・`)
743名無しさん@そうだ選挙にいこう:2010/05/15(土) 20:20:59
>>731
うまくいきました。ありがとうございます。
744名無しさん@そうだ選挙にいこう:2010/05/15(土) 20:30:41
>>742
=LEFT(A2,FIND(" ",A2,FIND(" ",A2,1)+1)-1)
745名無しさん@そうだ選挙にいこう:2010/05/15(土) 21:03:55
>>742
trimを使ったら?
746名無しさん@そうだ選挙にいこう:2010/05/15(土) 21:11:46
>>745
サンクス
便利な関数があるんだな。知らんかったわ
747名無しさん@そうだ選挙にいこう:2010/05/15(土) 22:59:26
excel 数式エディタを使用して
エクセルに数式を貼り付けているのですが
その数式で文字と文字の間に変なスペースが入ったりしてしまいます。
数式を編集中はなんとも無いのですが、
変なスペースが入らないようにする方法はありますか?
748名無しさん@そうだ選挙にいこう:2010/05/16(日) 02:41:30
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

株価のデータを作成しているのですが標準偏差や平滑指数平均など
小数点以下多数桁の数値が多くさらにそれらを参照して計算させています。

「エクセルは小数点以下の計算が苦手」という話を聞きまして
上記のような場合はROUND関数などで数値を丸めた方が計算速度や正確性は上がるでしょうか?
もし体感できない程度ならそのままにしておこうかと思っているのですが・・・
(修正するとなると結構な手間になりそうなので)
749名無しさん@そうだ選挙にいこう:2010/05/16(日) 07:55:18
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 棒グラフ

平成21年度と平成22年度の月別事故件数とその内訳の比較グラフを作ろうとしています。
4月、5月、〜、3月ごとに、平成21年度と平成22年度の棒グラフが並んで比較できるようになっていて
グラフ数値の内訳として「物的要因/人的要因」などが表示できるようにしたいのですが
うまい方法はないでしょうか?

750名無しさん@そうだ選挙にいこう:2010/05/16(日) 08:10:03
>>749
「積み上げ棒グラフ」と「集合棒グラフ」を合わせて使えばいいと思うよ
ttp://oji3.dtiblog.com/blog-entry-114.html
751名無しさん@そうだ選挙にいこう:2010/05/16(日) 08:15:11
>>748
Excelが少数以下の計算が苦手なのは誤差が出るからです。
ROUNDは端数を削って誤差をさらに大きくするだけなので意味ないです。
削るための処理が増えるので計算も遅くなります。
その誤差が問題になるかどうかは計算の方法と、その結果をどうやって使うかに関わりますので
簡単に答えることはできません。
752名無しさん@そうだ選挙にいこう:2010/05/16(日) 08:15:14
>>748
計算速度はともかく丸めといたほうがいいよ
http://pc.nikkeibp.co.jp/pc21/special/gosa/eg2.shtml
753名無しさん@そうだ選挙にいこう:2010/05/16(日) 10:27:03
2003を使用してるんですが、むかしどっかで複数のファイルをタブ化できる
ソフトってのをみたんですが、そのソフト名を忘れてしまって
ご存じの方いたらそのソフト名を教えてください。
754複乳:2010/05/16(日) 11:50:36
エクセル タブ化
でぐぐればそれらしいのがいろいろ
755名無しさん@そうだ選挙にいこう:2010/05/16(日) 13:24:58
>>748
体感速度上げたいならブックの計算を手動にするのがいいんじゃないかと
756名無しさん@そうだ選挙にいこう:2010/05/16(日) 15:43:08
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

12列目にある「B」の数を数えて「B」が無い場合は「0」でなくブランク表示されるようにしたいのですが
=COUNTIF(B13:BI13,"B") ←この式だと「0」も表示されてしまいます。
他のセルでは答えが「0」も表示させたいのでシート全体で「0」の非表示ではなく
当該セルのみのやり方で教えていただけないでしょうか
宜しくお願いします
757名無しさん@そうだ選挙にいこう:2010/05/16(日) 15:54:28
>>756
式でやってもいいし、
=IF(COUNTIF(B13:BI13,"B"),COUNTIF(B13:BI13,"B"),"")
セルの書式設定でユーザー定義で
0;;
こんな感じにしても可
758名無しさん@そうだ選挙にいこう:2010/05/16(日) 16:04:02
もうひとつやり方ある。
メニューのツール→オプションから、表示タブ。
ゼロ値のチェックを外すと 0 になるセルは空白になる。
759名無しさん@そうだ選挙にいこう:2010/05/16(日) 16:05:40
・・・って、条件、よく読んでなかった。
忘れてくれ。
760名無しさん@そうだ選挙にいこう:2010/05/16(日) 16:10:47
セルの書式設定でやるなら書式を
#
にするのもいいかも
761名無しさん@そうだ選挙にいこう:2010/05/16(日) 16:12:06
>>757-758
ありがとうございます!
762名無しさん@そうだ選挙にいこう:2010/05/16(日) 16:12:44
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel 2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

税込み金額から税金額だけを計算する関数はありますか?

税込み1050円の税金分は50円のように。

よろしくお願いします。
763名無しさん@そうだ選挙にいこう:2010/05/16(日) 16:18:44
>>762
小学生の算数ですが・・・

=A1-A1/1.05

とか、なんとか・・・
764名無しさん@そうだ選挙にいこう:2010/05/16(日) 16:26:10
もっと簡素にするなら、
=A1/0.05
かな?
765名無しさん@そうだ選挙にいこう:2010/05/16(日) 16:27:21
766名無しさん@そうだ選挙にいこう:2010/05/16(日) 16:29:53
767名無しさん@そうだ選挙にいこう:2010/05/16(日) 16:31:24
768名無しさん@そうだ選挙にいこう:2010/05/16(日) 17:15:38
次でボケて(AAry
769名無しさん@そうだ選挙にいこう:2010/05/16(日) 17:19:32

 | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
 |   次でボケて!!!   |
 |________|
    ∧∧ ||
    ( ゚д゚)||
    / づΦ
770名無しさん@そうだ選挙にいこう:2010/05/16(日) 17:29:11
"次でボケて"といわれると ボケたくなくなる 天邪鬼なので

>>764
=A1/21

じゃない?
といってみるテスト
771名無しさん@そうだ選挙にいこう:2010/05/16(日) 17:53:25
>>762みたいな低能にエクセルは勿体ないな
電卓で充分w
772名無しさん@そうだ選挙にいこう:2010/05/16(日) 18:17:26
>>764
=A1*0.05が正解! よく考えようぜ!
773名無しさん@そうだ選挙にいこう:2010/05/16(日) 18:32:16
>>762
ホームセンターなどで、税額ボタンが付いている電卓を買ってくる。

PCの横に電卓をおく。

電卓に税込金額を入力する。

税額ボタンをおす。

表示された税額をPCで入力する。
774名無しさん@そうだ選挙にいこう:2010/05/16(日) 21:39:49
>>772
つ、釣られないぞっ!
775名無しさん@そうだ選挙にいこう:2010/05/16(日) 21:41:49
WinXPの2003です。
A1とA3のセルを選択した状態で1と3の列全体を選択する方法ってないでしょうか?
Shift+SpaceだとA1+3の列全体が選択されてしまうんですが・・・
776名無しさん@そうだ選挙にいこう:2010/05/16(日) 22:01:56
>>751-752
ありがとうございます
ご意見分かれてるようなので他の方の意見も伺えればと思うのですが・・・
よろしくお願いします
777名無しさん@そうだ選挙にいこう:2010/05/16(日) 22:03:22
>>775
一発でやる方法はない。
A1をクリック→Shift+スペース→Ctrl押しながらA3をクリック→もう一度Shift+スペース
ただし、左端の「1」をクリック→Ctrlを押しながら「3」をクリック、のが早い。

あと、「1の列」じゃなくて「1行目」な。数字は「行」。
「列」はアルファベットに対して使う。「A列」とか。
Excelではそういう決まり。
778名無しさん@そうだ選挙にいこう:2010/05/16(日) 22:22:20
>>777
そうですか。
ジャンプ→空のセル選択→その行選択(列じゃないんですね。失礼。)で削除したかったんですが。
1000行くらいあるもんで・・・ なんか別の方法を考えますわ。
ありがとうございました。
779762:2010/05/16(日) 22:22:42
>>763-
関数は無いという事で間違いないですか?

ちなみに、=A1*(5/105)が正しいですよ。
780名無しさん@そうだ選挙にいこう:2010/05/16(日) 22:25:08
>>748
小数誤差 でぐぐれ
大丈夫かどうかは場合による。
グラフ作る目的や価格の動向程度では問題にはならない
論理値を出す場合などに問題が発生する
どうしても不安なら整数にしてから計算する
それでも不安なら電卓叩けばいい
781名無しさん@そうだ選挙にいこう:2010/05/16(日) 22:27:46
>>779
うるせー、消えろよ
782複乳:2010/05/16(日) 22:28:19
>>778
F4が前回と同じ動作になる
行削除→行選択→F4→選択
それか残したい行の使っていない列に1を入れて行き、その列でオートフィルタかける→新規シートにコピー
783762:2010/05/16(日) 22:29:52
>>781
計算方法ではなく関数の有無を聞いているのに、>>763-774の流れはなんですか。
784名無しさん@そうだ選挙にいこう:2010/05/16(日) 22:33:26
関数はありません。

つーか、「税」って5%だけだと思ってるバカですか?
785名無しさん@そうだ選挙にいこう:2010/05/16(日) 22:34:31
>>783
=zei(A1,5)
786名無しさん@そうだ選挙にいこう:2010/05/16(日) 22:37:04
>>783
=tax(a1)

ってのでも作れば?
787名無しさん@そうだ選挙にいこう:2010/05/16(日) 22:48:32
>>778
オートフィルターで空白セル選択、可視セル選択にして行を削除 とか、
vbaとか
788762:2010/05/16(日) 23:03:18
>>784
何を言っているんですか?
>>762の場合の例を書いたまでですよ。

>>786
アドインで作ってみまふ。(`・ω・)b
789名無しさん@そうだ選挙にいこう:2010/05/16(日) 23:16:58
>>780
ありがとうございます。
>浮動小数点数の演算を高速化するための専用の装置を別途搭載している場合が多い
>(現在では、CPUに内蔵していることも多い)。

との記述があるのでとりあえず現状のままで使ってみようと思います。
砂時計が出たままになるのはシート数を減らすなどで対応した方が良さそうですね。
790名無しさん@そうだ選挙にいこう:2010/05/16(日) 23:21:01
>>783
ユーモア。

大丈夫。理解できなくても、生きていけるさ。
791名無しさん@そうだ選挙にいこう:2010/05/16(日) 23:32:59
【1 OSの種類         .】 Windows Vista
【2 Excelのバージョン   】 Excel 2007
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可(回答例を書いてもらえるなら)
列A,Bにそれぞれ値があり複数条件でのソートをしたいのですが操作方法が思い浮かびません。
よろしくお願いします。
※下記はA1:B5の範囲。→後は理想的な結果。0は0もしくは値なし。
2 0  1 0
5 2  2 0
1 0→3 2
3 2  5 2
4 0  4 0
792複乳:2010/05/16(日) 23:36:16
>>788
Function zei(motonedan As Integer)
Dim zeiritu As Double
zeiritu = 0.05
zei = motonedan * zeiritu / (1 + zeiritu)
End Function
・・・0.05/1.05かけた方が早くね?練習がてらやるならいいけどさ
ちなみに税率も引数にした方がいいんだがもういいか
>>789
重いなら使わない部分はコピー、値で貼りつけて数式を極力なくした方が良い
793名無しさん@そうだ選挙にいこう:2010/05/16(日) 23:56:50
他人が作ったファイルで、30行までデータ(説明文とかを含む)があって
右のバーが短くなってるとき、31行目以降に無駄なデータがあるか調べるのに
マクロを書きましたが糞重たいです。
アイデアください。

Sub check()

 For i = 31 To 65536
  For j = 1 To 255
   If Cells(i, j) <> "" Then MsgBox j & "列, " & i & "行"
  Next j
 Next i
End Sub
794名無しさん@そうだ選挙にいこう:2010/05/17(月) 00:06:02
>>793
そりゃ重いだろうな…

空白行が無い前提なら
Selection.End(xlDown).Select
とか
counta とかで先に範囲を限定するんだが…

不要なのが分かってるなら削除するかな。

蛇足だが…
=COUNTA(31:65536)
とやると、どれだけセルに入力されてるかの目安にはなるぞ。
795名無しさん@そうだ選挙にいこう:2010/05/17(月) 00:07:45
>>793
最終行を取得して、それを比較すればいいんじゃないか。
796788:2010/05/17(月) 00:13:50
>>792
複乳さんだ!
関数を書いていただき、ありがとうございます!(`・ω・´)
さっそく使わせていただきます。


>>790
わかっとりますw
797794:2010/05/17(月) 00:31:30
>右のバーが短くなってるとき
思ったんだが、もしかして下にデータが絶対あるはずだと考えた?
まれに(?)データが無くてもスクロールバーは小さくなることが有るぞ?

=COUNTA(31:65536)
この関数で、もし 0 なら、あきらめて >>694-696 と同じ対処したほーがいいと思うぞ。
798名無しさん@そうだ選挙にいこう:2010/05/17(月) 05:28:59
>>789
その解説はちょっと古い
小数の計算をする専用の装置は、15年ぐらい前からCPU内蔵率100%になってる
つまり計算に時間がかかる原因は別にある
まさかと思うけど、使ってるパソコンが古くないか?

あと、専用の装置を使ったからと言って誤差がなくなるわけではない点にも注意
799名無しさん@そうだ選挙にいこう:2010/05/17(月) 06:44:21
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel 2007
【3 VBAが使えるか    .】 いいいえ
【4 VBAでの回答の可否】 不可

すみません、質問です
http://www.dotup.org/uploda/www.dotup.org891251.jpg
上の画像で、一定の間隔をあけたD列のセルのテキストを、F列で空白なく、参照したいのですが、
やり方がわかりません。。

INDEX関数かOFFSET関数かだとは思うのですが、どちらも思ったような結果を返してくれません(; ;)
詳しい方、アドバイスお願いします!m(_ _)m
800名無しさん@そうだ選挙にいこう:2010/05/17(月) 06:57:02
>>799
例えば
=INDEX(D:D,ROW(A1)*3+7,0)
801名無しさん@そうだ選挙にいこう:2010/05/17(月) 06:57:48
あ、F10にね、上の式。下にコピー
802名無しさん@そうだ選挙にいこう:2010/05/17(月) 07:09:02
>>799
じゃあOFFSETの場合
=OFFSET(D$10,ROW()*3-30,0)
803名無しさん@そうだ選挙にいこう:2010/05/17(月) 08:10:59
>>800
'=D10
'=D13
と入力して、2個のセルを選択してフィルコピーしてから
データ、区切り位置、完了
この方法で出来た式が一番軽い。
どうしても関数でやるならINDEXだな。
ただし>>800のROW(A1)の部分はROW(D1)の方がベター。
804複乳:2010/05/17(月) 08:14:59
>>791
条件がよくわからないんだが、
とりあえずC列にA1+B1か、A1&B1でもしてそれをもとにソートしてはどうでしょう
>>799
折角だから俺はindirectを使うぜ!
=INDIRECT("r"&(ROW()-10)*3+10&"c4",0)
805名無しさん@そうだ選挙にいこう:2010/05/17(月) 08:37:14
やっぱりお前が出てきたか。
しかし強情なやっちゃなぁ。
OFFSETやINDIRECTの揮発性の関数は使っちゃいかんよ。
806名無しさん@そうだ選挙にいこう:2010/05/17(月) 08:41:29
>>805
INDEXも同じだろ?
807名無しさん@そうだ選挙にいこう:2010/05/17(月) 08:57:32
>>806
同じだったのはExcel5だったかExcel95の時代だよ。
いまどきそんな昔のバージョン使ってるやつ滅多にいないだろ?
808名無しさん@そうだ選挙にいこう:2010/05/17(月) 09:04:57
>>807
そうなの?
だったらすまんかった。
809複乳:2010/05/17(月) 11:53:48
>>807
ソースは?と思ったが自分で調べた
ttp://support.microsoft.com/kb/169885/ja
2002時点では揮発性関数
ttp://support.microsoft.com/kb/274500/ja
2003か2007で変わったっぽい
index使うかなぁ
810名無しさん@そうだ選挙にいこう:2010/05/17(月) 12:17:50
【1 OSの種類         .】 Vista
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい?(自分では作成できませんが使い方はある程度分かります)
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 参照 リスト 複数など

あるシートの列に
1111
1111
1113
1112
1111
以下続く
といったようにコードが振ってあります

これらを別のシートにある
1111 A
1112 A
1113 B
以下続く
と、コードをAやBといったブロック分けしてある参照表を元に照らし合わせたいのです
参照結果は作業列に吐き出したいと思っています
元データ上ではコードは重複しています
別シートの参照表ではコードは重複していませんが、AやBには複数のコードが含まれます

VLOOKUP関数なのかと考えましたが、今回のケースでの応用がよくわかりませんでした
よろしくお願いします
811名無しさん@そうだ選挙にいこう:2010/05/17(月) 12:32:52
>>809
そんなもの信用しちゃいかんよ。
すくなくともExcel97はROWS,COLUMNS,INDEXは揮発性じゃなかったぞ。
調べ方知ってるか?
Calculateイベントで調べるんだよ。
Excel95はOnCalculateプロパティで調べる。
812名無しさん@そうだ選挙にいこう:2010/05/17(月) 13:09:49
>>811
これは嘘なの?
tp://www.relief.jp/itnote/archives/001519.php
インストラクターだからお前さんより信用出来ると思うんだが。
813名無しさん@そうだ選挙にいこう:2010/05/17(月) 13:21:54
>>812
そりゃ嘘だろう
ググって調べただけで実際自分でコード書いて調べてはいないんだろうね
論より証拠だから
814複乳:2010/05/17(月) 15:20:35
うおマジだ。
2000でもindexは揮発性じゃないな。俺が悪かった。
ゲイツめ・・
>>810
リストがsheet2とすると
B1=INDEX(Sheet2!B:B,MATCH(A1,Sheet2!A:A,0))
815名無しさん@そうだ選挙にいこう:2010/05/17(月) 17:08:06
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel 2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

関数式のあるセルの列の部分($A13←13の部分)のみを可変数値として
他のセルを参照させたいのですがどのように表記すれば良いでしょうか?
(可変数値を入力するセルを「L6」とした場合)
以上よろしくお願い致します
816810:2010/05/17(月) 18:47:41
>>814
ありがとうございます!
うまくいきました
817シベリア経由でのお願い:2010/05/17(月) 19:05:49
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ

一枚の基本シートを1ヶ月分31枚コピーするマクロでこんな感じのを見つけました。
で、シートのB5に1日用シートなら1、10日用シートなら10と、
コピーするついでに数字を入れるように改造して頂けないでしょうか

Sub copysheet()
Dim i As Integer

i = 1
Worksheets(i).Name = i & "日"

Do

Worksheets(1).Copy After:=Worksheets(i)
i = i + 1
Worksheets(i).Name = i & "日"
Loop While i < 31
End Sub
818名無しさん@そうだ選挙にいこう:2010/05/17(月) 19:20:05
>>815
indirect関数
>>817
doの次に
Worksheets(i).cells(5,2) = i
819815:2010/05/17(月) 20:32:02
>>818
ありがとうございます

XXXXXXXXX$A13XXXXXXXX
XXXXXXXXX$B13XXXXXXXX
XXXXXXXXX$C13XXXXXXXX
XXXXXXXXX$D13XXXXXXXX




という風に複数の関数があってセル「L6」の数値を「13」→「20」に変えると

XXXXXXXXX$A20XXXXXXXX
XXXXXXXXX$B20XXXXXXXX
XXXXXXXXX$C20XXXXXXXX
XXXXXXXXX$D20XXXXXXXX




と一括変換されるようにしたいのですが・・・
820名無しさん@そうだ選挙にいこう:2010/05/17(月) 20:47:45
>>815
$A13の13の部分なら列の部分じゃなく行の部分だろ?
複乳さえ心を入れ替えてINDEXを使うようにしようと書いてる矢先に>>818は馬鹿なの?死ぬの?
縦なら=INDEX(A:A,L6)、横なら=INDEX($A:$A,L6)だよ。
821名無しさん@そうだ選挙にいこう:2010/05/17(月) 20:57:00
なんだ?>>819は読んでなかったわ。
822名無しさん@そうだ選挙にいこう:2010/05/17(月) 21:07:33
>>819
とりあえず、やっぱりINDIRECT関数
823名無しさん@そうだ選挙にいこう:2010/05/17(月) 22:07:44
2007/5/11
2007/5/12
2007/5/13



2010/5/13
2010/5/14
2010/5/17
2010/5/18

という風に日付が並んでいるのですが(ただし全てではなく土日祝などは含まれません)
この中から毎月の第二木曜日のみ日付の隣のセルに「休」が表示されるようにしたいのですが
どのような関数で書けばよいでしょうか?
よろしくお願いします
824名無しさん@そうだ選挙にいこう:2010/05/17(月) 22:44:33
>>823
A2から始まっているとして
=IF(DATE(YEAR(A2),MONTH(A2),0)+14-WEEKDAY(DATE(YEAR(A2),MONTH(A2),4),3)=A2,"休","")

第二木曜日はたぶん合っていると思うけど、式が・・・・ww、、、よくわかんねーや
825名無しさん@そうだ選挙にいこう:2010/05/17(月) 23:03:21
>>824
できました!ありがとうございます!
でも質問間違えてました!第二金曜日でした!どこを変えればいいですか?!
826名無しさん@そうだ選挙にいこう:2010/05/17(月) 23:24:40
=IF(DATE(YEAR(A2),MONTH(A2),0)+14-WEEKDAY(DATE(YEAR(A2),MONTH(A2),3),3)=A2,"休","")
でいけました!お騒がせしました!
827名無しさん@そうだ選挙にいこう:2010/05/17(月) 23:34:51
私は聞いておるのだ、揮発性関数とは何なのかと。
828名無しさん@そうだ選挙にいこう:2010/05/17(月) 23:39:31
旭化成は考えます、いま何が必要なのかを。
829名無しさん@そうだ選挙にいこう:2010/05/17(月) 23:44:29
エクセル97持ってるけど2007か2010にバージョンアップってできる?
2010買った方がイイのかな MCASのエクセル2007か2010受けたい
830名無しさん@そうだ選挙にいこう:2010/05/18(火) 06:47:36
>>827
揮発性関数というのは関数の値が記憶されずに消えてしまう(揮発する)関数のこと。

一番わかりやすい例がNOW()関数。現在時刻はどんどん変化するから式が呼び出さるれたびに再計算される。
ブックを閉じて開くだでけも再計算されて、編集してないのにいちいち「変更を保存しすまか?」とか聞いてくる。

Excelの動作が重くなるので何が何でも揮発性関数は使わないようにしようって
主張する頭の固い人がこのスレにはいるってだけのこと。
ぶちゃっけそんなのケースバケイースだろ
831名無しさん@そうだ選挙にいこう:2010/05/18(火) 06:56:25
>>829
できない
2007にバージョンアップできるのは2000以降
2010に無料アップグレードできる2007を買う手もあるけど2007と2010は使い勝手が違うから
今のタイミングなら発売までは2010のベータ版を使っといた方がいいかも
832名無しさん@そうだ選挙にいこう:2010/05/18(火) 10:26:35
会社の年度毎の売上成績書を作る為に日付けを「期」に直す式を教えて下さい。

会社は毎期 2月21日〜翌年の2月20日で1期です
A1に「20100614」の様な日付を表す6桁の数値が入っています。

そこで、その数値からファイルを開いた日を基準に考えて「前々期」・「前期」・「当期」・「該当なし」の
いずれかの値を返す式を教えて下さい。

例えば
ファイルを開いた日が2010年5月18日であれば
20080221〜20090220は"前々期"
20090221〜20100220は"前期"
20100221〜20110221は"当期"
833名無しさん@そうだ選挙にいこう:2010/05/18(火) 10:38:40
そのまま書けばいいんじゃないの?
=IF(YEAR(TODAY())-(LEFT(A1,4))=0,"当期",IF(YEAR(TODAY())-(LEFT(A1,4))=1,"前期",IF(YEAR(TODAY())-(LEFT(A1,4))=0,"前々期","")))
834名無しさん@そうだ選挙にいこう:2010/05/18(火) 10:39:43
おっと、コピペした部分で修正もれ…
=IF(YEAR(TODAY())-(LEFT(A1,4))=0,"当期",IF(YEAR(TODAY())-(LEFT(A1,4))=1,"前期",IF(YEAR(TODAY())-(LEFT(A1,4))=2,"前々期","")))
835名無しさん@そうだ選挙にいこう:2010/05/18(火) 10:42:09
ごめん、忘れてくれ…
うっかりちゃんだな、俺。
836名無しさん@そうだ選挙にいこう:2010/05/18(火) 10:46:48
>>834
ありがとうございました、できました

>>835
なぜでしょうか?
837836:2010/05/18(火) 11:11:41
すみません仰るとおり違うみたいです。
838名無しさん@そうだ選挙にいこう:2010/05/18(火) 11:26:33
すいません・・・>>819のINDIRECT関数の書き方がよくわからないのですが・・・
839名無しさん@そうだ選挙にいこう:2010/05/18(火) 11:31:55
アク金はストレス溜まるなあ。
>823 は素直に
=IF(AND(WEEKDAY(A2)=6,DAY(A2)>7,DAY(A2)<15),"休","")
840名無しさん@そうだ選挙にいこう:2010/05/18(火) 11:32:45
>>838
例えばL6に「13」と入っていたとすると=INDIRECT("$A"&L6)と書けば=$A13と同じ意味になる。
L6を「20」にすれば自動的に=$A20と書き換えたのと同じことになる。
あとはこれを応用して数式に順番に代入してけばいい。
841名無しさん@そうだ選挙にいこう:2010/05/18(火) 12:19:50
>>832
6桁じゃなくて8桁でしょ
=IF((YEAR(NOW())-(MONTH(NOW())*100+DAY(NOW())<220)-YEAR(DATE(LEFT(A1,4),MID(A1,5,2),RIGHT(A1,2))-51)+1)>3,"該当なし"
,CHOOSE(YEAR(NOW())-(MONTH(NOW())*100+DAY(NOW())<220)-YEAR(DATE(LEFT(A1,4),MID(A1,5,2),RIGHT(A1,2))-51)+1,"当期","前期","前々期"))

Excelのバージョンが2007以降なら式がもっと簡単にできるんで、質問する人はちゃんとテンプレ使ってね
842名無しさん@そうだ選挙にいこう:2010/05/18(火) 12:22:24
>832
「20100614」の様な「6桁」の数値は扱いにくいので
シリアル値に直してB1に入れておく(省略)
IFERRORは2007以降しか使えないが
環境が書いてないから無視する。

=IFERROR(INDEX({"当期","前期","前々期"},YEAR(TODAY()-51)-YEAR(B1-51)+1),"該当なし")
843834:2010/05/18(火) 12:24:29
かなり頭わるそうだけど、実用はいけるだろ関数。
=IF(AND(A1>20080201,A1<20090220),"前々期",IF(AND(A1>20090221,A1<20100220),"前期",IF(AND(A1>20100221,A1<20110221),"当期","該当なし")))
844834:2010/05/18(火) 12:29:06
でもって、さらに頭わるいシリアル値バージョン。
A1 を VALUE(TEXT(A1,"yyyymmdd")) に書き換える…
845名無しさん@そうだ選挙にいこう:2010/05/18(火) 12:30:08
>>842
その式だとうるう年の4月20日付近でおかしくならんか?

>>843
2010年度しか使えないので却下
846名無しさん@そうだ選挙にいこう:2010/05/18(火) 12:34:28
>>844
違うぞ
847名無しさん@そうだ選挙にいこう:2010/05/18(火) 12:41:04
>>846
あ、説明不足?
8桁の数字がシリアル値の場合…無理やり数字に置き換えて、>>843の式どおりに。
まぁ、指摘どおり、2010年度しか通用しないけどなw

現在日付から、8桁の誕生日な数字をひいて年齢を出すやりかたを応用できないか考えたが、
頭悪いからパンクしたw
848名無しさん@そうだ選挙にいこう:2010/05/18(火) 12:52:59
>845
うるう年によって51日前が2月28日だったり
29日だったりするが同じ年には変わりない。
期の境が3月1日などの場合は影響があるので
逆に年末までの残りの日数を足してやる。
849834:2010/05/18(火) 12:54:52
今日は疲れてるみたいだ…
不等号だけじゃ、2/20,2/2 は必ず該当なしじゃないか…orz

しばらく旅に出ます。
850名無しさん@そうだ選挙にいこう:2010/05/18(火) 13:05:10
>>827
揮発性関数とはのべつ幕なしでいつでも再計算する関数だよ。
=A1だとA1が変更したときだけ再計算する。
=INDEX(A:A,1)だとA列のどれかのセルが変更されたときに再計算する
=INDIREC("A"&1)だと関係のないセル、関係のない他シート、関係ない他ブックのセルが変更されても
再計算する。
だからINDEXで事足りるとき、ことさらINDIRECT使うやつは馬鹿といわれてもしょうがない。
そういう無駄はおいといてINDIRECTがとくに馬鹿にされるのは汚いってのもある。
いままでの複乳のINDIRECTの回答をみれば汚いと思ってるやつは多いよ。
俺はたまに叩いてたが、俺以外でも叩いてるやついたしな。
それからケースバイケースって言うやつに限ってきちんと使い分け出来ないやつが多いから気をつけるんだな。
851名無しさん@そうだ選挙にいこう:2010/05/18(火) 18:21:00
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可

セルAに月(1〜12)セルBに月に応じた日数を選択できるよう入力規則を利用して
選択できるようにしたいと思ってます
需要がある使い方と思いますし、定番といわれるようなやり方があるのではないかと
予想してるのですが、何かスマートなやり方がありますか?
852名無しさん@そうだ選挙にいこう:2010/05/18(火) 19:40:25
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ

$A$7
$A$7
$A$7
$A$7



と同じ列に並んでいる式を一括で
$B$7
$B$7
$B$7
$B$7



に変換する方法ってあるでしょうか?
853名無しさん@そうだ選挙にいこう:2010/05/18(火) 19:40:40
>>843
普通にダメ。>>841が○(後出しだがおれも同じだったんだぜ!)。こういう時は発想の転換が大事だ
そして"該当なし"に対する>>842は本当に綺麗で涙でそうになったわ
>>851
>需要
ねーよw

C1に日付
A1=month(a1)
B1=DAY(A1)

それかコントロールからカレンダーだな。
http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_calendar.html

よほど大量に打たない限り普通に打った方が早いと思うが、まぁひとそれぞれだな
854名無しさん@そうだ選挙にいこう:2010/05/18(火) 20:26:02
>>832みたいのは表にリスト書き出してLOOKUPでも使うのが間違いない罠。
もちろん究極の最適化は>>842みたくなるわけだが。
855名無しさん@そうだ選挙にいこう:2010/05/18(火) 21:11:16
>>852
置換じゃダメ?
856名無しさん@そうだ選挙にいこう:2010/05/19(水) 00:16:21
複数条件で悩んでいるのですが、
A列のA2、B列B2、C列C2、D列の0か4以上でカウントしてオートフィルで下まで引っ張りたいのですが、
数式はどのようにすればいいのでしょうか?
D列には数字が入っています。
857名無しさん@そうだ選挙にいこう:2010/05/19(水) 00:49:17
=TRANSLATE(>>856)
858名無しさん@そうだ選挙にいこう:2010/05/19(水) 02:01:05
>>855
できました〜ありがとうございます
859名無しさん@そうだ選挙にいこう:2010/05/19(水) 04:18:13
「レポート」という名前の別のシートの下記のようなセルから

 A列   ・・・・・H列
2010/05/16 ・・・・・★
2010/05/17 ・・・・・☆
2010/05/18 ・・・・・★
2010/05/19 ・・・・・☆
(空白)
(空白)


A列が今日の日付のH列のセルを参照したいのですが
その場合「='レポート'!〜」から先がわからないのですがどのように書けば良いでしょうか?
「A列が今日の日付」なら〜という構文と
「A列が最新(下のセルが空白)」なら〜という構文の2種類お願いしたいのですが・・・
宜しくお願い致しますm(_ _)m
860Che:2010/05/19(水) 05:56:14
よーし、修行中だががんばって回答しちゃうぞ〜
同じ日付が複数行あるどダメだけど・・・
「今日の日付」
=VLOOKUP(TODAY(),レポート!A:H,8,0)
「最新なら」(「レポート」シートのA1に「日付」等の文字がある場合
A1から日付が入ってる場合は「+1」を外してちょ。
=OFFSET(INDIRECT("レポート!A"&COUNT(レポート!A:A)+1),0,7)
861名無しさん@そうだ選挙にいこう:2010/05/19(水) 07:25:01
おまえら難しく考えすぎ
A列に日付として成立しないようなイレギュラーな値が入っていない限り、
いちいちシリアル値に直さんでも計算できるだろ

>>832
Excel2003以前
=IF(YEAR(NOW()-51)-LEFT(A1,4)+(MOD(A1,10000)<221)<3,CHOOSE(YEAR(NOW()-51)-LEFT(A1,4)+(MOD(A1,10000)<221)+1,"当期","前期","前々期"),"該当なし")

Excel2007以降
=IFERROR(CHOOSE(YEAR(NOW()-51)-LEFT(A1,4)+(MOD(A1,10000)<221)+1,"当期","前期","前々期"),"該当なし")
862名無しさん@そうだ選挙にいこう:2010/05/19(水) 11:09:38
【1 OSの種類         .】 Windows7 64bit (CPU core i3 メモリ4G)
【2 Excelのバージョン   】 Excel2002(officexp)
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 windows7 excel2002 スクロール 表示 遅い 

ここで聞いていいのか解りませんが、家ではエクセルを表計算に使わず
ポップ(値札?)を作るのに使ってます。
最近PCが壊れてしまい、新しく買ったwindows7のPCにofficexpを入れました
ポップは図形描画ですべて作ってます。ほとんど枠と文字のみで
ちょうどバナーのような横に細長い感じの物です。
それをA4の大きさの範囲に5〜6個作って数ページびっしり作ります。
そのファイルを開くと20個位のポップが画面に出て来るんですが
1つ1つの表示が1、2秒かかり全部表示されるのがとても遅いです。
さらに、全部表示し終わっても画面をスクロールすると
また表示しなおされてしまいます。
スクロールする度にピコピコ出てきて目が死にます。
何とかなりませんか?よろしくお願いします。


863862:2010/05/19(水) 11:14:43
サービスパック3入れてます
864名無しさん@そうだ選挙にいこう:2010/05/19(水) 11:54:39
>>862
あまり聞いたことのない症状だ。
Windows XPでは素早く表示されてたってことだよね?
ツールのオプションで計算方法を手動にしてみたらどうなる?
865名無しさん@そうだ選挙にいこう:2010/05/19(水) 11:56:55
>>862
表示倍率は100%になってる?
縮小してページ全体を見渡せるようにしてると表示が遅くなるよ。
866862:2010/05/19(水) 12:04:37
>>864
レスありがとうございます。
xpではこんな事は無かったです。
手動にしてみましたが駄目でした
867名無しさん@そうだ選挙にいこう:2010/05/19(水) 12:08:48
>>862
簡単に言うと相性の問題。Win7とOfficeXPは相性が悪い。
解決策はOffice2010に買い換える。

Office XPはWindowsのGDIという仕組みを使って図形(オートシェイプ)を表示するように作られている。
この部分の設計がWindows Vista以降で大幅に変更されたため、Windows XPに対して最適化された
Office XPは、最新型の高速なパソコンでは逆に動作が遅くなってしまうという結果になっている。

Office 2010は無料体験版があるからいっぺん試してみ。
868862:2010/05/19(水) 12:13:30
>>865
>>867
倍率100%でも駄目でした。
2010を試してみます。
ありがとうございました。
869名無しさん@そうだ選挙にいこう:2010/05/19(水) 17:14:12
excelってLOOKUP関数など「以上〜未満」は出来るのに、何故「超え〜以下」ができないのでしょうか?

いや、もちろん工夫すればできますけども、いらぬ工夫だとは思いませんか?
lookupなどの関数にモードを替えるような引数を増やせばスッキリとするのに「超え〜以下」の時にくだらぬ作業データなど使うのが嫌なんですよね。
870名無しさん@そうだ選挙にいこう:2010/05/19(水) 17:17:14
>>860
ありがとうございます!
やってみましたが・・・
=VLOOKUP(TODAY(),レポート!A:H,8,0)
では「TRUE」と表示され「このセルは列の数式と矛盾しています」と注意が出ます

=OFFSET(INDIRECT("レポート!A"&COUNT(レポート!A:A)+1),0,7)
では「2101.368781」という関係ない数値が表示され↑と同様「このセルは〜」と注意が出ます
最後のAをHに変えると「0」と表示されます
A列は12行目に「日付」とあり13行目から日付の数値が入っています

H列の目的のセルとまったく同じ内容(□か■かブランク)を表示させたいのですが・・・
871Cherry ◆d/pQlCc6hA :2010/05/19(水) 17:59:30
>>870
僕のPC(Excel2000)ではうまく行ったんだけどなんでだろう?
ちなみに「最新の」はコレでできるはずなんだけど。
=OFFSET(INDIRECT("レポート!A"&COUNT(レポート!A13:A65536)+12),0,7)
872名無しさん@そうだ選挙にいこう:2010/05/19(水) 18:43:27
>>871
たびたびありがとうございます!
もう一度やってみたら
=OFFSET(INDIRECT("レポート!A"&COUNT(レポート!A:A)+12),0,7)
でもできました・・・が参照先がブランクの場合「0」と表示されてしまいます
ブランク表示させることはできないでしょうか?

=VLOOKUP(TODAY(),レポート!A:H,8,0)
こちらでは#REF!と表示されます
873横から失礼:2010/05/19(水) 18:47:32
>872
数式の最後に &"" って付加すると、文字列扱いになって 0 は表示されなくなります。
結果が文字列だけ(☆、★、ブランク)だけのようなので、これでいいと思う。
874873:2010/05/19(水) 18:54:18
>859,872
今日の日付に該当する方は
=INDEX(レポート!H:H,MATCH(TODAY(),レポート!A:A))&""
でどうですか?
当方、WindowsXp Excel2003
875名無しさん@そうだ選挙にいこう:2010/05/19(水) 18:59:47
>>873-874
ありがとうございます!
=INDEX(レポート!H:H,MATCH(TODAY(),レポート!A:A))&"" でできました
「最新」のほうも&""付加でできました
Cherry ◆d/pQlCc6hA さんもありがとうございます!
助かりました!
876名無しさん@そうだ選挙にいこう:2010/05/19(水) 19:59:03
>862,868
無料で利用できるOpen.Office.org(オープンオフィス)はいかが?
877名無しさん@そうだ選挙にいこう:2010/05/20(木) 08:08:20
ここで聞いていいのかわかりませんが

今までWin2k( CPU PEN41.8Ghz ) 使っていて、PC購入に合わせてWindows7に変えました。
使っているエクセルは2003、CPUはCore i7 860、GPUはNVIDIA GT240です。

使ってみると、計算は速いようですが、シェイプの描画が物凄く遅いです。
よこからだらららと書いていくのが見えるぐらいで、これは異常ではないかと

単にエクセルのバージョンの問題なら諦めますが、ぐぐっても何も出てこないので
同じwindows7で使ってる方いましたら、ご助言もらえると幸いです。
878名無しさん@そうだ選挙にいこう:2010/05/20(木) 08:11:25
>>877
windows7は64bit版です。
879名無しさん@そうだ選挙にいこう:2010/05/20(木) 08:17:12
>>877
あ、申し訳ない。
ちょっと上に同じような不具合が出てましたね。
バージョンの問題なら仕方がないか・・・・
880名無しさん@そうだ選挙にいこう:2010/05/20(木) 14:36:13
EXCEL2003,XPsp2の質問です。

VBAを使わずに、複数のブックの中にあるシートの各セル(数値項目)を
合計したシート(ブック)を作れる機能があれば教えて下さい。

ただし、合計シートの各セルに集計対象のセルを参照した式を埋め込む
方法は除きます。
イメージ的には、集計対象のシートまたはブックを選択→串刺し計算指定
→合計を記録するシートまたはブックの指定のような手順です。

よろしくお願いします。


881817:2010/05/20(木) 16:05:05
>>818
やっと規制解除されたみたいだ。
お礼が果てしなく遅くなりました、ありがとうございます。
みんな凄いなぁ・・・どうやって勉強したんだろう。
882名無しさん@そうだ選挙にいこう:2010/05/20(木) 18:37:17
すみませんが教えてください。
vbaで環境依存文字は使えないのですか?
チェックボックスにチェックのはいった文字
で"□レ"みたいのを文字列操作関数で使いたい
のですが、"?"マークがでてダメです
無理でしょうか?
883複乳:2010/05/20(木) 19:56:09
ねむ・・
>>882
http://codezine.jp/article/detail/1718
Sub Sample()
Cells(2, 1) = ChrW(9745)
Cells(1, 1) = "文字コード:" & AscW(Cells(3, 1))
End Sub
884名無しさん@そうだ選挙にいこう:2010/05/20(木) 20:37:08
>>883
ありがとうございます(*^o^*)
できないよとダメだしされると思っていました
明日、早速やってみます
ほんとうにありがd
885名無しさん@そうだ選挙にいこう:2010/05/20(木) 22:07:13
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ

AD列に+の数値と−の数値とブランクが並んでいて
その列の絶対値の合計を求めたいのですが
=ABS(SUM(AD13:AD200))だと+−が合計された後の絶対値になってしまいます
絶対値の合計を求めるにはどうすればよいでしょうか?
886885:2010/05/20(木) 22:35:18
すいません・・・色々ぐぐってみましたが
セル範囲はOFFSET関数で参照しているので
実際は
{=SUM(ABS(OFFSET(AD1,$B$3-1,0):OFFSET(AD1,$B$4-1,0)))}
こうなると思うのですがエラーが出ます・・・
OFFSETがあると{}が効かない?んでしょか?
887名無しさん@そうだ選挙にいこう:2010/05/20(木) 22:36:44
>>885
=SUMPRODUCT(ABS(AD13:AD200))
888名無しさん@そうだ選挙にいこう:2010/05/20(木) 22:40:33
>885,886
まさかとは思うけど、式の両端にある { と } を入力してはいませんか?

=SUM(ABS(OFFSET(AD1,$B$3-1,0):OFFSET(AD1,$B$4-1,0)))
[Enter]キーを押す前に↑まで入れておいて、[Shift]+[Ctrl]+[Enter]でいけると思うけど。
889885:2010/05/20(木) 22:52:04
やってみましたが#VALUE!と出ます
890888:2010/05/20(木) 23:02:56
>885,889
参照範囲内にブランク(空白でもnullでも)があると#VALUE!になりますね。
もちょっと考えてみます。
891名無しさん@そうだ選挙にいこう:2010/05/20(木) 23:12:49
=SUMIF(AD13:AD200,">0")-SUMIF(AD13:AD200,"<0")
こんなのとか
892名無しさん@そうだ選挙にいこう:2010/05/20(木) 23:12:53
数字かどうかを判定する部分 ISNUMBER() を組み入れました。
下の式を入れて(Enter押す前で)から、[Shift]+[Ctrl]+[Enter]でやってみてください。
=SUM(ABS(IF(ISNUMBER(OFFSET(AD1,$B$3-1,0):OFFSET(AD1,$B$4-1,0)),OFFSET(AD1,$B$3-1,0):OFFSET(AD1,$B$4-1,0),0)))
893名無しさん@そうだ選挙にいこう:2010/05/20(木) 23:24:18
皆様offset関数の第4、第5引数は使わない派ですか?
=SUM(ABS(OFFSET(AD1,$B$3-1,0,$B$4-$B$3+1,1)))
[Shift]+[Ctrl]+[Enter]
894885:2010/05/20(木) 23:38:56
>>891-892
どちらもできました!ありがとうございます!
895名無しさん@そうだ選挙にいこう:2010/05/20(木) 23:41:03
2007です。
いちいち書式ウィンドウを出すのが面倒なのですが、下線(会計)を一発で引く方法はありますか?
「U」ボタンの機能を変更できればベストなのですが、そういうのはできなさそうなので。
896名無しさん@そうだ選挙にいこう:2010/05/21(金) 01:11:29
>>895
エクセル ショートカット 〇〇 辺りでググると大概見つかります。Ctrl+U。
http://www2.odn.ne.jp/excel/xlshortcut.html
897名無しさん@そうだ選挙にいこう:2010/05/21(金) 01:38:12
>>896
それは「下線」のショートカットですよね。
私が引きたいのは「下線 (会計)」です。
ttp://downloads.myphotos.cc:8080/up1/src/FancyFree0780.jpg
898名無しさん@そうだ選挙にいこう:2010/05/21(金) 02:47:34
質問させて下さい。2007です。

外部からコピペした表の中の金額欄が、数値ではなく半角数字文字列で入力されており、末尾に半角スペースが入っています。
(LEN関数で文字数を観測したら、数字の桁数+1になっていた。手作業で末尾の空白を消すと、数値として扱えるようになった)
この金額欄の数字を利用して計算式をたてたいのですが、数が多いので何らかの方法で数値として扱えるようにしたいのです。

ただ、色々やってみたところ
・末尾の半角スペースを取り除かなければならない→TRIM関数で空白を削除したものの、VALUE関数で変換しようとしても関数を参照しているのでエラーになってしまう

・置き換えで半角スペースをなくそうとしたけど、何故か検索にひっかからない→半角スペースが取り除けない

何かいい方法ないですか?
899名無しさん@そうだ選挙にいこう:2010/05/21(金) 04:45:40
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ

A列に数値が並んでいてB列には=IF(A2>A1,"△”),IF(A2<A1,"▼"),""  (←オートフィルで下行まで)
と入っているのですが

数値の増減が滑らかなカーブを描く場合
△△△▼▼▼▼▼▼△△△△△△▼▼▼▼▼▼▼▼▼▼△△△△△△  (←列として見てください)
という具合に同じ三角がある程度連続して現われます

逆に数値の増減が滑らかなカーブを描かない場合
△△△▼▼△▼▼▼△▼△△▼▼△△△▼△▼▼△▼△▼▼△△△▼▼  (←列として見てください)
という具合に三角がランダムに現われます

以上は視覚的にある程度判断できるのですがシート数が多くあるため
この列の三角の並び方(滑らかorランダム)を調べる方法はないでしょうか?
角シート1000行ぐらいあるのですがどのような関数で調べることができるか
アドバイスいただけないでしょうか?

アイデアとしては
・50行ごとに3個以下の連続が幾つ含まれているかを数える
ぐらいしか思いつかないのですが曲線の滑らかさを測る指標とかあるでしょうか?
ヒントだけでもいただければありがたいです。
900名無しさん@そうだ選挙にいこう:2010/05/21(金) 04:56:10
>>899
書いてから気付きましたが別に50行と区切らなくても
1000行すべてでカウントすれば良いですね

例えば「全範囲(1000行)で同じ三角が3個以下の連続(1個も一つと数える)が幾つあるか数える」
という関数はどのようになるでしょうか?
901名無しさん@そうだ選挙にいこう:2010/05/21(金) 07:22:43
>>899
求める答えではないけど、△▲を0,1に変換して自己相関取るのが
スマートと思うよ。A1:A31に0,1のデータが入っていたら
=correl(A1:A30,A2:A31)
答えが0に近いほどランダムを表します。
902名無しさん@そうだ選挙にいこう:2010/05/21(金) 10:42:53
すみません。マウスのポインタに対してXYの座標に色がつくマクロのサンプルはどこかにないでしょうか。
イメージとしては H40マスにポインタがあったら、H列と40行全部に色がつき、H40でクロスするといったものです。
当然マウスを動かすと移動するものです。ぐぐったんですがサンプルがなかなかなくて困っています。
エクセル2003でうごけばいいです。
903名無しさん@そうだ選挙にいこう:2010/05/21(金) 10:58:03
セクセルに詳しい方助けてください
=IF(COUNTIF(C2:C31,"<30")=0,"",COUNTIF(C2:C31,"<30"))
はちゃんと数値が出るのに
=IF(COUNTIF(C2:C31,"<c33")=0,"",COUNTIF(C2:C31,"<c33"))
はちゃんとした数値が出ません。
何が悪いのでしょうか?
904903:2010/05/21(金) 11:12:14
ヤフー知恵袋の勝ちということで
無事解決しました
905名無しさん@そうだ選挙にいこう:2010/05/21(金) 11:48:14
>898
>置き換えで半角スペースをなくそうとしたけど、何故か検索にひっかからない→半角スペースが取り除けない
置き換えダイアログで、検索側の欄に自分で半角空白を入れるのではなく、コピペでもダメでしたか?
特殊文字(改行などの制御文字)かもしれないですね。
末尾の「空白のようなもの」の文字コードを調べてみたら?
=CODE(RIGHT(A1,1)) ←A1セルの文字列右端の「空白のようなもの」の文字コードが表示される
=CODE(" ") ←半角スペースを自分で入れた文字コードが表示される
906名無しさん@そうだ選挙にいこう:2010/05/21(金) 13:44:56
>>897
Sub 会計下線()
Selection.Font.Underline = xlUnderlineStyleSingleAccounting
End Sub

ツール→ユーザー設定→コマンド→マクロ→ユーザ設定ボタン
で、そのボタンに上のマクロを割り当て、ツールバーに追加するとか?
私だったらctrl+zとかのショートカットキーを割り当てるけど。
907名無しさん@そうだ選挙にいこう:2010/05/21(金) 13:53:14
>>902
ポインタじゃなくてセルを選択してないと出来ないけど・・

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
'選択セルの行列に色をつけます。
Cells.Interior.ColorIndex = xlNone
r = Target.Row
co = Target.Column
Rows(r).Interior.ColorIndex = 36
Columns(co).Interior.ColorIndex = 36
End Sub
908名無しさん@そうだ選挙にいこう:2010/05/21(金) 15:41:28
>>901
ありがとうございます
相関係数 CORREL  ・・・2つの配列の相関係数を返します。
これは調べる範囲が1000行ある場合
=correl(A1:A999,A2:A1000) とすれば良いのでしょうか?
それとも=correl(A1:A30,A2:A31) をオートフィルで下までという形でしょうか?
909複乳:2010/05/21(金) 20:02:00
>>898
>>905の言うとおり制御文字か何かだろう
それをコピーしてsubstituteでもいいけど
=LEFT(A1,LEN(A1)-1)*1
でよくない。ちなみに*1は数値にするためのもの
910複乳:2010/05/21(金) 20:02:52
>>902
Worksheet_mousemoveなんてあればいけるんだろうけど
↓はhttp://yunatip.exblog.jp/175815と>>907の合体。
'↓標準モジュールに記述
Public Type POINTAPI
X As Long
Y As Long
End Type

Public Declare Function GetCursorPos Lib "USER32" _
(lpPoint As POINTAPI) As Long

Public Declare Function SetCursorPos Lib "USER32" _
(ByVal X As Long, ByVal Y As Long) As Long

'↓sheet1に記述
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim poi As POINTAPI
Dim mycl As Range

Call GetCursorPos(poi)
Set mycl = ActiveWindow.RangeFromPoint(poi.x, poi.y)

Cells.Interior.ColorIndex = xlNone
r = mycl.Row
co = mycl.Column
Rows(r).Interior.ColorIndex = 36
Columns(co).Interior.ColorIndex = 36

End Sub
911901:2010/05/21(金) 21:34:14
>>908
元データがどんな系列か、また何を解析したいかの最終目的次第だと思う
(もし教えて下さればより明確な答えが出るかも)
ある数nまでの周期性が存在するか調べたいなら、ラグをn
まで取った自己相関を調べると良いよ。

n=10とすると、データがA1:A1000に入っているとして、
C1:C10に1〜10を入れて
D1に=correl(offset($A$1,0,0,1000-C1):offset($A$1,C1,0,1000-C1))
これをD10までコピー。
912908:2010/05/21(金) 21:59:31
>>911
ありがとうございます。
調べたいのは株価に関する数値(以下Z値とします。株価そのものではありません)です。

Z値がどのように変化しているのか各銘柄ごとに調べて
もし△△△▼▼▼▼▼▼△△△△△△▼▼▼▼▼▼▼▼▼▼△△△△△△ 
のような変化ならZ値が滑らかに上昇下降しやすい銘柄

あるいは△△△▼▼△▼▼▼△▼△△▼▼△△△▼△▼▼△▼△▼▼△△△▼▼
という変化ならZ値が不規則にに上げ下げを繰り返す銘柄

というふうに銘柄ごとのZ値の動きのクセを調べたいというのが目的です。
そして複数銘柄のZ値の動き方を数値化できればそれを比較して
滑らかな動き〜不規則な動きという具合にグループ分けするのが最終目的です。

理系の知識が殆どなくつたない説明で申し訳ありませんが
アドバイスいただければありがたいです。
913名無しさん@そうだ選挙にいこう:2010/05/21(金) 22:55:44
【1 OSの種類         .】 WindowsXP SP2
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 不可
【5 検索キーワード     】 IF文
宜しければ知恵を授けてください…
 A B
1× ▲
2× ×
3× ×
4× ●

=IF(OR($A$1<>"×",$A$2<>"×",$A$3<>"×",$A$4<>"×"),"OK","")
A1〜A4までが全て×の時は、""にしてB1〜B4の様に×以外がある場合は
"OK"と表示させているのですが、セル一つ一つを指定して判定してる為
20コ、30コっとなってくると非常に大変な事になってしまいました。
↑の式をIF(OR($A$1:$A$4)<>"×"),"OK","")
の様に範囲で指定する方法はないでしょうか?
宜しくお願いします。
914901:2010/05/21(金) 23:07:50
>>912,908
「滑らかに上昇下降」や「不規則に上げ下げ」や「動きのクセ」の定義(計算方法)
をお伝え頂ければ、手段としてのExcelの解法をお伝えできますが・・・。

これ以上はExcelとは関係ない内容でスレ違いですから、どこか
誘導していただければそちらで答えられるかもしれません。





915名無しさん@そうだ選挙にいこう:2010/05/21(金) 23:14:18
>913
=IF((COUNTIF(A1:A20,"×")-ROWS(A1:A20))=0,"","OK")
ではどうですか?
916915:2010/05/21(金) 23:19:44
別に引き算しなくてもよかった
=IF(COUNTIF(A1:A20,"×")=ROWS(A1:A20),"","OK")
917名無しさん@そうだ選挙にいこう:2010/05/21(金) 23:29:38
>>915
あんなに悩んでいたのが嘘のようです。
そうかCOUNTIFで個数数えてセルと同数なら・・・って考えれば良かったんだ
柔軟な発想がとても羨ましいです。
本当にありがとうございます。
918915,916:2010/05/21(金) 23:37:41
>917
ヒントは少し前の質問といくつかの回答にありました。
>885-894 を見てください。
919908:2010/05/22(土) 02:12:33
>>914
もう少し考えをまとめたいと思います。。。
アドバイスいただきありがとうございました。
920複乳:2010/05/22(土) 10:54:00
>>912
数学板で聞いたほうがよさげ
まぁ1行目にあるなら
=(A1<>B1)*1
で横にオートフィルして合計。こうすれば変化した回数がわかる
921名無しさん@そうだ選挙にいこう:2010/05/22(土) 13:27:31

??
922名無しさん@そうだ選挙にいこう:2010/05/22(土) 15:03:31
>ctrl+zとかのショートカットキーを割り当てる

へぇ〜
923名無しさん@そうだ選挙にいこう:2010/05/22(土) 15:28:57
Ctrl+zはよく使うからまずいだろ
924複乳:2010/05/22(土) 16:04:33
使いにくかったら勝手に変えるんじゃないすか
925名無しさん@そうだ選挙にいこう:2010/05/22(土) 17:45:15
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 少々

マクロの自動記録で、B1セルをクリックするとこんな感じになります。

Sub Macro1()
'
' Macro1 Macro
' マクロ記録日 : 2010/5/22 ユーザー名 : Kimura Saori
'

'
   Range("B1").Select
End Sub


デフォルトで、コメント行を出なくする方法がありますか?
また、ツール→オプション→編集で、自動インデントのタブ間隔を2にしましたが
   Range("B1").Selectの前には半角スペースが4個ぶん入ってます。
自動記録では対応できないのでしょうか?
926名無しさん@そうだ選挙にいこう:2010/05/22(土) 18:01:37
>>925
どっちも無理
927名無しさん@そうだ選挙にいこう:2010/05/22(土) 18:01:51
【1 OSの種類         .】 Windows XP Pro
【2 Excelのバージョン   】 Excel   2003 sp3
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】   可
【5 検索キーワード     】エクセル 複数の列 削除 一斉に削除 とびとび
エクセルで、飛び飛びになっている複数のセルを一気に削除したいのですが、
マクロを組むしかないでしょうか?

ちなみに,OSはXP Pro
エクセルのバージョンは2003 SP3です。
エクセルでは、シフトの代わりに、ctrlキーを押しながらだと、複数の列が選択できますが、
同時に、右クリックの操作(特に削除がしたい)したり出来ません。

[行列全体またはセルを含む選択範囲に対して、そのコマンドは使用できません。
行全体、列全体、または一つのセル範囲を選択し、再度実行してください。]
というメッセージが出ます。

928927:2010/05/22(土) 18:02:49
家電量販店の販売実績の表を例に教えてください
週刊販売達成率を、一気に削除したいのですが。
(B,E,G・・・・列を同時、若しくは固定して削除したい。)

○ ○カメラ、家電販売達成率
A    B   C   D  E   F   G   H  I  J 
       デジカメ        パソコン       ブルーレイ
  週間 月間  累計  週間  月間  累計 週間  月間 累計
今田
東野
加藤
板尾






929927:2010/05/22(土) 18:03:34
「マクロを記録する」方法でやってみたのですが、
削除する時に一行ずつずれてしまうため、
マクロを実行すると例えば、パソコンとブルーレイレコーダーの列しか残らなくなってしまいます。
(最終的に、デジカメの列は削除されてしまうため)
念のため、絶対参照しながら、デバッグでマクロを書き換えてみたのですが、無理でした。
(記録に使用したシートでは出来るのですが、別のシートでは出来ませんでした)
「列の位置(記号)は、一緒です」
シートの指定(sheet1)とかを書き換えれば出来るのでしょうか?
それとも参照する列を固定する必要があるのでしょうか?
長くなりましたが、お願いします。

930名無しさん@そうだ選挙にいこう:2010/05/22(土) 18:13:54
>>929
>削除する時に一行ずつずれてしまう
マクロの記述を読み解いて修正すればズレなくなるのでは?
931名無しさん@そうだ選挙にいこう:2010/05/22(土) 18:27:36


>>930
ありがとうございます。

一応やってはみたんですが。VBAというのが使えないんで、

ちなみに、「ずれる」というのは、例えばE列を削除すると、

「F列がE列に」来るということです。
932名無しさん@そうだ選挙にいこう:2010/05/22(土) 18:38:06
>>931
そのマクロは列を削除するマクロを記録しちゃっているんだね。
”数式と値をクリア”で記録し直せばいいよ。
933名無しさん@そうだ選挙にいこう:2010/05/22(土) 18:49:13
>>931
削除じゃなくて「delete」すればいいじゃない
934名無しさん@そうだ選挙にいこう:2010/05/22(土) 18:51:57
「削除」も「delete」も同じだぞwwwww
935名無しさん@そうだ選挙にいこう:2010/05/22(土) 18:51:58
>927,931
エクセルでの 削除 と 消去 の違いは大きいです。ちゃんと理解しておいた方がいいです。

エクセル超入門/削除とクリアの相違
http://homepage3.nifty.com/gakuyu/excel/sakujyo.html
936名無しさん@そうだ選挙にいこう:2010/05/22(土) 18:54:33
>>931
Ctrlを押しながら消したい範囲を選択したあと、キーボードの「Delete」と書かれたキーを押してみ
機種によっては「Del」と略して書いてあることもある
937名無しさん@そうだ選挙にいこう:2010/05/22(土) 19:06:00
>>934
エクセルに慣れている人であれば、deleteキーを使うのと「削除」の違いが分かる。


説明としては不親切だったとは思うけど、エクセルでは大きな違いなんだわ
938複乳:2010/05/22(土) 19:29:34
>>927
A列が歯抜けとすると
B1=IF(A1<>"",ROW(),"")
下にオートフィルタ
B列で並び替え
並びかえの基準を作って並びかえ、↓にたまったものを一期に削除というのが楽だよ
939名無しさん@そうだ選挙にいこう:2010/05/22(土) 20:15:00
>>931
列、行の削除をする場合は、後ろから削除が基本

>>928
の場合だと、G,E,B列と削除する
940名無しさん@そうだ選挙にいこう:2010/05/22(土) 20:56:27
ttp://uproda.2ch-library.com/248014acv/lib248014.jpg
このような表で、黄色いセルのグループを下に足していって、水色のセルに
=C11+C18+C25という計算式を入れて合計を出したいのですが、
足していくグループ数が変わっても対応できるようにするにはどう書けばいいですか?
(水色のセルには計算結果ではなく、計算式を入れたい)

Sub Macro1()
n = 7
e = "=R[7]C+R[14]C+R[21]C"
For j = 1 To 6
 For i = 2 To n
  Cells(2 + i, 2 + j) = e
 Next i
Next j
End Sub
941複乳:2010/05/22(土) 21:14:51
>>940
c4=SUMIF($B$11:$B$65535,B4,$C$11:C65535)
どうしてもVBAというなら最終行を取得(マクロの記録でctrl+↑)してFornextにstepを使えばいいんじゃないかな
942名無しさん@そうだ選挙にいこう:2010/05/22(土) 21:15:11
>>932-939
ありがとうございます、早速試してみます。
短期間にありがとう。
943名無しさん@そうだ選挙にいこう:2010/05/22(土) 21:24:41
>>940
遊んでみた

Sub aaa()
Dim maxRow As Long
Dim siki As String
Dim i As Long
maxRow = Cells(Rows.Count, 3).End(xlUp).Row
maxRow = maxRow - 3
For i = 7 To maxRow Step 7
siki = siki & "+r[" & i & "]c"
Next i
siki = Replace(siki, "+", "=", 1, 1)
Range("c4:h8").Formula = siki
End Sub
944940:2010/05/22(土) 22:17:58
>>941
マクロで書きたい理由は、行の追加や削除をすると計算式をその都度書き直さなければならないからと、
ある条件のとき計算式を全て削除してセルの中を空にしたいためです。
c4=SUMIF($B$11:$B$65535,B4,$C$11:C65535)と入れて、数式をコピペしたら
6〜8行目が=SUMIF($B$11:$B$65535,B6,#REF!)に、D〜H列が0になってしまいました。
ttp://uproda.2ch-library.com/2480573BA/lib248057.jpg

>>943
うまくいきました。
ただ、何をやってるのかサッパリ分りませんが(w
945名無しさん@そうだ選挙にいこう:2010/05/22(土) 22:52:43
>>944
>>943はVBAを使ってワークシートに数式を書き込んでるんだよ
実際の計算は数式の方でやってる
946名無しさん@そうだ選挙にいこう:2010/05/22(土) 23:02:37
最近買った外付けテンキーに
イコールキーがついていたんですが、
実際に普通のキーボードでどれを押したときに相当するんでしょうか?
他のソフトでは押しても何も出ません
947名無しさん@そうだ選挙にいこう:2010/05/22(土) 23:14:29
>946
スレ違いでは? 当該機器のメーカーと型番で↓にたずねてはいかが?

スレたてるまでもない質問に答えるスレ
http://pc11.2ch.net/test/read.cgi/bsoft/1123764624/l50
948名無しさん@そうだ選挙にいこう:2010/05/23(日) 00:08:39
>>946
こっちの方が幸せになれると思うよ。

お勧めのテンキー
http://pc11.2ch.net/test/read.cgi/hard/1231658312/l50
949名無しさん@そうだ選挙にいこう:2010/05/23(日) 00:17:14
漢字の文字列がいっぱいセルにあって
すべてを一括でとなりのセルにひらがな変換する方法はありますか?
phonetic関数では失敗だったので各データにひらがな情報は入ってないみたいです。
もちろん完璧変換は期待してないです。
950複乳:2010/05/23(日) 00:43:54
>>944
ああ一箇所もれてたか。もういいか・・
>>949
ttp://www.moug.net/tech/exvba/0050134.htm
Sub Sample2()
MsgBox Application.GetPhonetic("漢字に変換した場合")
End Sub
951名無しさん@そうだ選挙にいこう:2010/05/23(日) 00:52:06
>>949
その漢字のセルを選択→ふりがな→編集→Enter
で、とりあえず変換する。が、編集の時に正確な仮名に修正するもよし。
952951:2010/05/23(日) 00:54:46
phonetic関数で変換しない場合は、  こうすれば変換するよってことで。
953951:2010/05/23(日) 00:58:59
>>952じゃうまく伝えきれてないな。

phonetic関数で変換しない場合は、>>951を行えば  
phonetic関数で変換出来るよってことで。
954名無しさん@そうだ選挙にいこう:2010/05/23(日) 04:46:31
ある行の数値の合計を求めたいのですがSUMを使うと
その行に全く数値が入っていない場合0と表示されてしまいます

行に全く数値が入っていない場合はブランクとし
行に数値が入っていて計算後0となる場合は0と表示したい場合
どのような関数を用いれば良いでしょうか?
955名無しさん@そうだ選挙にいこう:2010/05/23(日) 05:06:15
>>954
こんな感じ。
=IF(COUNTA(ある行)<>0,SUM(ある行),"")
956名無しさん@そうだ選挙にいこう:2010/05/23(日) 05:20:19
>>955
ありがとうございます
やってみましたがやはり0と表示されてしまいます
あと対象の行には文字の入っているセルもあります
(文字も入っていない行でも0と表示されてしまいます)
957名無しさん@そうだ選挙にいこう:2010/05/23(日) 06:08:59
>>954
=IF(SUM(ある行)=0,"",SUM(ある行))
958名無しさん@そうだ選挙にいこう:2010/05/23(日) 06:38:50
>>957
行に数値が入っていて計算後0となる場合は0と表示したいので・・・
959名無しさん@そうだ選挙にいこう:2010/05/23(日) 07:00:52
>>954
=IF(COUNT(ある行)=0,"",SUM(ある行))
960名無しさん@そうだ選挙にいこう:2010/05/23(日) 07:31:48
>>955
COUNTに変えていけました
961940:2010/05/23(日) 13:48:15
>>945
数式を書き込んでるのは分りますが、
siki = Replace(siki, "+", "=", 1, 1) と Range("c4:h8").Formula = siki の意味がよくわからなくて・・・

Replace
指定された文字列の一部を、別の文字列で指定された回数分で置換した文字列を返します。

Formula
セルに定数が入力されているときは、Formula プロパティはその定数を返します。セルが空のときは、空の文字列を返します。セルに数式が入っているときは、数式バーでの表示と同じ形式で、等号を含む数式を文字列として返します。
962940:2010/05/23(日) 13:50:08
>>950
勉強のため、漏れてた箇所を教えてください。
963名無しさん@そうだ選挙にいこう:2010/05/23(日) 14:13:40
>>961
Replaceする前 → +r[7]c+r[14]c
ここで先頭の「+」を「=」に置き換えると =r[7]c+r[14]c
となって数式になる。R1C1形式の数式だからちょっとわかりにくいけどプログラムで使うには便利な書き方。

Formulaの説明は読む場所を間違えてる。それは右辺の説明。ここでは左辺に使っている点に注意。
左辺に使ったときは数式を書き換えることができる。
964名無しさん@そうだ選挙にいこう:2010/05/23(日) 14:16:08
>>961
マクロは実行の時にVB画面で「F8」を押しながら、どういう動きをしているか見ると分かりやすい。

sikiにはループで「+r[7]c+r[14]c・・・」と入っていくので、ループから出た後、最初の「+」を「=」に置き換えている。
この式をRange("c4:h8")に一気に数式として代入している。

本来「FormulaR1C1」とするべきだったかな・・・
http://www.moug.net/tech/exvba/0050098.htm
965949:2010/05/23(日) 14:57:07
>>950
どうも、できました。
参考までに下で読みをたしかめると「フクチチ」と出たのですが、合ってますか?

Sub gg()
MsgBox Application.GetPhonetic("複乳")
End Sub


>>951-953

いや実は、漢字のデータが大量にあってそれを効率的にひらがなにする方法を考えてたわけで、いちいち1つ1つ編集するのでは意味ないので。
966名無しさん@そうだ選挙にいこう:2010/05/23(日) 14:59:45
いつも何気なく使ってたのですが、「FormulaR2D2」の「R2D2」ってどういう意味があるのですか?
967名無しさん@そうだ選挙にいこう:2010/05/23(日) 15:17:54
スターウォーズに出て来るロボットですね
968名無しさん@そうだ選挙にいこう:2010/05/23(日) 15:29:18
C3PO(´・ω・`)
969名無しさん@そうだ選挙にいこう:2010/05/23(日) 16:13:20
WinXPで、Excel 2002を使ってます。
エクセルを起動したときに、セルの色を塗りつぶすバケツみたいなマーク
『塗りつぶしの色』が、いつも黄色で起動します。

エクセルを起動時に、塗りつぶしの色を青にしたいのですが
どうすればいいのでしょうか? 教えて下さい m(_ _)m
970名無しさん@そうだ選挙にいこう:2010/05/23(日) 17:38:29
>>969
ブックごとの設定になるけど、ツール、オプション、色の黄色のところを変更すれば、
そのブックを開いたときだけ設定した色になる。

どんなブックでも青にしたいならテンプレートかVBA。
971927:2010/05/23(日) 18:12:21
>>932-937
delete
したいのではなく、列そのものを削除したかったんです。
938,939さんありがとうございます。
助かりました。
972名無しさん@そうだ選挙にいこう:2010/05/23(日) 19:22:34
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 使えません

13行目 1.5  2.5  3.1  1.9  2.7  1.2  2.3

15行目  3    6         2         7    3

上のような表で
「15行目の数値を合計する」
「ただし合計するのは同じ列の13行目の数値が大きいもの上位3つのみ」
という式が欲しいのですがどのようになるでしょうか?
973名無しさん@そうだ選挙にいこう:2010/05/23(日) 19:40:34
上位3番目までに同位があったら・・・・

=SUMPRODUCT((RANK(A13:G13,A13:G13)<=3)*A15:G15)
974940:2010/05/23(日) 19:47:21
>>963
>>964
ご丁寧に説明してくださり、ありがとうございます。
しかし凄いですね。こんなアイデアは思いもつきませんでした。
975名無しさん@そうだ選挙にいこう:2010/05/23(日) 20:12:02
=>>973
やってみましたが#N/Aと出ます。。。
976名無しさん@そうだ選挙にいこう:2010/05/23(日) 20:29:31
>>975
NAがでるのは配列が揃っていない時が多いよ。チェックしてみて
977名無しさん@そうだ選挙にいこう:2010/05/23(日) 20:42:09
>>976
>972の各数値列の間にブランク列があるのですがそれが原因でしょうか?
15行目の数値の左に記号が入っていてその列が各数値間に挟まってます
978名無しさん@そうだ選挙にいこう:2010/05/23(日) 21:50:39
>977
1行下に作業行を設けることはできませんか?
=IF(ISNUMBER(A15),A15,0)
をA16に設定し、右へフィルコピーした上で、
=SUMPRODUCT((RANK(A13:G13,A13:G13)<=3)*A16:G16)
ではいかが?
979名無しさん@そうだ選挙にいこう:2010/05/23(日) 22:03:48
>>799です
>>800-804の皆様、お礼が遅くなりましたが、ありがとうございます。m(_ _)m

あの後、自分でも試してみて、思ったとおりの動作をしてくれたのですが、
式の中に出てくる、*3や+7、-30とかの数字がどこからでてくるのか、何を表すのかがわかりませんでした。orz
本当に申し訳ありませんが、これらの数字が何を表しているのか教えて頂けると非常に助かります。。
何卒ご教授の程、よろしくお願い致します。
980名無しさん@そうだ選挙にいこう:2010/05/23(日) 22:12:54
>>978
たびたびすいません。
15行目と同様の行が200行ほど続いていまして
その各行で同じ計算をしたいので・・・
元の表から作りなおした方が良いでしょうか
981名無しさん@そうだ選挙にいこう:2010/05/23(日) 22:16:11
>>979
ごめん回答したけど、どんな表だっけ(´・ω・`)?
10行目から飛び飛びに3行おきのデータを見るんだよね・・・?

=INDEX(D:D,ROW(A1)*3+7,0)

ROW(A1)は「1」 1*3+7で10 
下にいっこずれると 
ROW(A2)は「2」 2*3+7で13 ・・・・って感じ

INDEXのD列の中で10、13、16・・・行目を見ていけってこと
982複乳:2010/05/23(日) 22:42:58
>>962
C65535 → $c$65535
行は65535までしかない。これ以上増やそうとしたのでエラーになった
>>965
あってるよ
後は応用だけど、もう面倒なので作った。A1:A100に漢字のデータを貼付け。B1:B100に読み方が出る
Sub gg()
Dim i
For i = 1 To 100
Cells(i, 2) = Application.GetPhonetic(Cells(i, 1))
Next
End Sub
983978:2010/05/23(日) 22:59:53
>980
ブランク(半角or全角の空白がある)なセルも含め、全てのデータから空白を削除できませんか?(置換機能にて)
そしたら作業行は不要になるはずですが。
984名無しさん@そうだ選挙にいこう:2010/05/23(日) 23:21:00
>>983
時間掛かりそうですがやってみます
それと>>978の式で*が入っているのですがこれは積を求めることになるのでしょうか?
15行目の合計が求めたいのですが・・・
985940:2010/05/23(日) 23:30:15
>>982
ありがとうございます。
986978,983:2010/05/23(日) 23:33:30
>984
=SUMPRODUCT((RANK(A13:G13,A13:G13)<=3)*A16:G16)
の * は論理積を求めるものです。合計は SUMPRODUCT 関数で求めます。

例えば↓をみてください。ぐぐればいろいろわかります。
http://excel.onushi.com/function/sumproduct.htm
初心者のエクセル入門

空白を一度に取り除くのは 検索/置換 です。「全て置換」だとワンクリックで済みます。
検索する文字列 に 空白、置換後の文字列 にはなにも入力しない  これだけです。
※ただし、文字列の中の空白も削除されるので、要注意
http://www.h6.dion.ne.jp/~yakichan/nyumon/02/nyumon2-30.html
エクセル講座
987986:2010/05/24(月) 00:15:49
>986の自己訂正 * は結果的に論理積になるだけで、普通にかけ算です。

(RANK(A13:G13,A13:G13)<=3)の部分が論理式となるので、かけ算のときは1or0になるので、
結果的にA13:G13のなかのトップ3の部分だけが1,他は0になる
→A16:G16のそれぞれに1or0をかけたものの和(SUMPRODUCT)が答えになるということです。
988名無しさん@そうだ選挙にいこう:2010/05/24(月) 01:06:10
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 初心者レベル

下記Aのような表で、セルの色をツール-オプション-色で細かく調整して色分けしてあります。
これをオートフィルタでBのように抽出し、この状態をマクロボタンを押して新規のブックにして
保存したいのですが、抽出してないデータも一緒にコピーされたり、セルの色も初期状態に
戻ってしまい、マクロボタンも一緒にコピーされてしまいます。

----- A --------------
支店   計画   実績
青森   300    256
福島   120    111
千葉   550    563
岐阜   330    299
鳥取   120    132
---------------------
===== B ==============
支店   計画   実績
青森   300    256
千葉   550    563
岐阜   330    299
=====================

抽出した部分だけをコピーし、セルの色を引き継ぎ、マクロボタンを消すには
どうすればいいですか?

Sub 保存()
Sheets("Sheet1").Copy

ActiveWorkbook.SaveAs "C:\data\" & "test.xls"
End Sub
989名無しさん@そうだ選挙にいこう:2010/05/24(月) 01:39:02
マクロで、日付の変数で、1か月分後の日付を計算するにはどうすればいいですか?
日にちなら単純に1を足せばいいけど、月だとうまくできないので困っています。

関数じゃなく、マクロでお願いします。
990名無しさん@そうだ選挙にいこう:2010/05/24(月) 06:04:22
>>989
31日の一ヶ月後は?たとえば1月31日の一ヶ月後は?
991989:2010/05/24(月) 07:52:31
2月31日
992989:2010/05/24(月) 07:53:53
というか月までしか表示しないからそんな計算しなくていいのだ
993名無しさん@そうだ選挙にいこう:2010/05/24(月) 10:16:32
>988
抽出した部分だけのコピー、セルの色を引き継ぐ、マクロボタン(とマクロ)は引き継がない ということならば、
シートのコピーではなく、シート上の全セルをコピーする方法ではどうですか?
マクロの自動記録で下記の手順を記録してみてください。
1 全セル選択(A1セルの左上部分をクリック)
2 メニュー−編集−コピー(右クリックからの操作でも可)→ここでオートフィルタの結果だけになる
3 メニュー−ファイル−新規ブック
4 セルカーソルがA1にあるのを確認してメニュー−編集−貼り付け
5 A1セルをクリック
6 メニュー−ファイル−名前を付けて保存

セルの色と罫線は引き継がれますが、行の高さ、列の幅の情報は引き継げないようなので、
必要によりVBAで設定が必要になります。それと、ページ設定も引き継げません。
もっといい方法があるかもしれませんが、誰かアイデアをだしてくれるでしょう。
994名無しさん@そうだ選挙にいこう:2010/05/24(月) 12:12:47
行の高さは左端の行番号を選択して行全体をコピペすれば引き継がれます。
列の幅は形式を選択して貼り付けの中に「列幅」というのがあります。
印刷書式を引き継ぐ方法は、プリンターの機種を限定すればできますが、
汎用の方法はありません。ブックごとコピーする必要があります。
995名無しさん@そうだ選挙にいこう:2010/05/24(月) 13:29:25
78
996名無しさん@そうだ選挙にいこう:2010/05/24(月) 14:42:05
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 フォームコントロール 連動

御願いします。
シート1にあるフォームコントロール(チェックボックス1)に、
チェックをつけると、
シート2にあるフォームコントロール(チェックボックス4とフォームコントロール(チェックボックス5)
も連動してチェックが付き(シート1のチェックを外すと4と5も外れる)、
かつシート2のA1セルに○を入力するといった
方法をとりたいのですが、どのように記述(VBA)したら良いでしょうか?
997名無しさん@そうだ選挙にいこう:2010/05/24(月) 15:11:36
>>988
コピーしてから削除が早いな。全てのボタン(shapes)を削除
不可視セルのD列に1を付け、fornextでstepを-1。D列が1の行を削除
と思ったら不可視セルの判定方法が分からなかった。hiddenプロパティが何故か取得できない。。悔しいっ(ビクビクッ
プログラム板のvbaスレに行ってみては?
>>996
シートaとbを用意、それぞれにcheckboxを一つずつ用意
'Sheet1(a) に記述
Private Sub CheckBox1_Change()
Call unko
End Sub
'標準モジュールに記述
Sub unko()
Sheets("b").CheckBox1.Value = Sheets("a").CheckBox1.Value
End Sub
これでcheckboxが連動する。後は何とかなるだろう
998名無しさん@そうだ選挙にいこう:2010/05/24(月) 19:12:37
※ 次スレのご案内 ※
http://pc11.2ch.net/test/read.cgi/bsoft/1274695863/
999名無しさん@そうだ選挙にいこう:2010/05/24(月) 19:48:33
埋め
1000ならVBAマスター\(^o^)/
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。