5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

Excel総合相談所 72

1 :名無しさん@そうだ選挙にいこう:2008/07/11(金) 17:39:04
Excelに関する質問は、ここで!

▼━ 質問のしかた ━━━━━━━━━━━━━━━━━━━━
★1 質問するときは環境や条件はきちんと書いてね。情報後出しはダメ。
★2 要望は具体例や図を使って明確かつ具体的に。
★3 質問前に>>2-10あたりの注意書きや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総合相談所 71
http://pc11.2ch.net/test/read.cgi/bsoft/1214204248/l50


2 :名無しさん@そうだ選挙にいこう:2008/07/11(金) 18:04:06
▼━質問時の注意・決まり事━━━━━━━━━━━━━━━━━━━━
・1 現行スレ内で既出の質問が無いか、ページ内検索をしよう。(Ctrl+F)
・2 図やコードを書く場合、TABや連続する半角スペースは無視されるので注意
・3 VBAコードを貼る場合は、部分的に伏せたり省略したりせずに全て貼りましょう。何レス使っても構いません。
・4 2回目以降の質問では名前欄に初回質問の番号を入れよう。
・5 回答内容でわからない部分があっても、すぐに聞き返さずにヘルプやGoogleなどで検索しましょう。
・6 バグ・動作上の不都合・仕様に関する質問などはマイクロソフトのサポートを受けましょう。
  ここは技術的な質問のみで。
・7 VBAはプログラム言語のVisualBasic(6以前)に近い処理が可能でExcelに関係ないことも出来ます。
  Excelの操作に関係ない部分は、スレ違いなのでここで聞かずにVB言語やAPI、COMについて自分で勉強し、
  どうしてもわからない部分はVBスレやAPIスレなどの該当スレで質問しましょう。
  但し向こうはプログラマのスレなので、構文規則などの最低限の事は覚えてから質問しましょう。
  ここみたいに丸投げはダメですよ。
・8 うまくいかなかったにしても自分でやってみたこと(組んだ数式やコード)は書きましょう。
  例えエラーになる式やコードでも、何をやりたいのかを的確に把握する手がかりになります。
  その上で、どううまくいかないのかを具体的に書きましょう。
  エラーが出るなら、何処でどういうエラーが出るのか、
  想定外の結果が出るなら、条件と想定上の結果、実際の結果などを詳しく書いてください。
・9 マルチはダメ。一度マルチしたら、謝っても他のスレの質問を取り下げても回答は得られないと思ってください。
・A テキストボックス(エディトボックス)、コンボボックス(ドロップダウンリスト)、リストボックス、コマンドボタン、
  チェックボックス、オプションボタン(ラジオボタン)、スピンボタン、スクロールバー、等の質問をするときは、
  ユーザーフォーム、コントロールオブジェクト、フォームオブジェクトのどれなのかを必ず書くこと。
・B 書籍や解説サイトの紹介依頼はスレ違い。ここは技術的な質問のみで。

3 :名無しさん@そうだ選挙にいこう:2008/07/11(金) 18:05:07
★ルールを無視すると…
 >>1-2あたりのルールに従うか否かは自由だけど、従わないと以下のような不利益があるよ

 1.マルチをしてしまったら…
 A.謝っても他での質問を取り下げても、以後その質問に対する回答は付かない物と思ってください。
   それが嫌なら初めからマルチなんてしないように。>>2にマルチ禁止と書いてあり、
   マルチの意味が分からなければ検索すれば出てくるので、「知らなかった」は通用しません。

 2.>>1★4に従わず、必要な情報を出さないと…
 A.自分の使用しているバージョンで使えない機能を答えられたり、VBA使えないとか使いたくないと書かないと
   VBAでの解決OKで自分でコード書けるものと勝手に解釈されて、「VBAで出来るから自分でコード書いて」程度の
   適当な回答を返されたりします。また、ここではVBAコード書けない人の丸投げ依頼を許可してますが
   これはきちんとルールに従って質問、依頼した人のみの特権です。

 3.情報・条件を後出しすると…
 A.後から出された情報は意図的に無視されたり、質問自体を放置されたりします。
   >>1★4の必須情報はもちろんのこと、要望や条件、既に試したことなどは、
   長文になってもいいので詳細かつ明確かつ具体的に書きましょう。


★VBAについて
 VBAとは、『Visual Basic for Application』の略で
  Application
  ├Workbooks
  |└Workbook
  |  ├Worksheets
  |  |└Worksheet
 というApplication以下のオブジェクトを、VB言語で操作するものを指します。
 例えExcel付属のVBE(Visual Basic Editor)を利用しようとも、このApplication以下のブックやシート、
 セルやオブジェクト等を操作するもの以外はVBA分野の話ではないので、ここでは聞かないでください。

4 :名無しさん@そうだ選挙にいこう:2008/07/11(金) 18:05:47
★ Excelで出来ないこと、仕様上の制限 (括弧内は代用法)

 ▼環境・書式
  ・ 列数を256列以上、行数を65'536行以上に増やす (Excel2007では16'384列、1'048'579行扱える)
  ・ Excel2003以前で条件付き書式を3つ以上設定する (文字色だけなら、入力規則でも3つ設定可能。それ以外はVBA)
  ・ 行の高さを0.25きざみ以下の単位で指定する
  ・ セル内の文字を○で囲む、一部のみ2段にする (オートシェイプ、オブジェクト)
  ・ オートフィルタで英字の大小文字を区別する (小文字 → 半角、大文字 → 全角、と使い分ける)
  ・ 祝日を判断する (作業セルに祝日を列挙、VBA)
  ・ 同一列内でセル(行)ごとに列幅を変える、同一行内でセル(列)ごとに列高を変える (セルの結合)
  ・ ヘッダー・フッターのページ番号の開始番号任意指定、ページ番号演算、同シート内で違ったものを指定など
  ・ セルのサイズ(幅、高さ)を、長さの単位(ミリメートルなど)で指定する (プラグイン)
  ・ 罫線幅の自由指定
  ・ 表示形式で「10/ 1」といった書式を指定し、日付が一桁の場合のみ日付の前にスペースを入れる (TEXT関数、VBA)
  ・ 書式設定の「折り返して全体を表示する」と「縮小して全体を表示する」を同時に使う (折り返しを有効にして、手動で文字サイズを調整)

 ▼操作
  ・ ファイラーの右クリックメニューからの新規作成で、Excelで設定したシート数のブックを作る (任意のシート数のテンプレートを作成)
  ・ 複数シートを選択して入力規則やシートの保護を設定する (VBA)
  ・ オートコンプリート機能を、別列や離れたセルで動作させる (VBA)
  ・ 選択範囲から一部を除く、Ctrlを押しながらの複数選択で一部を取り消す (VBA)
  ・ 優先キーを3つ以上指定しての並べ替え (優先度の低い方から順に並べ替える)
  ・ 1セルを分割 (分割したいセル以外を結合)

5 :名無しさん@そうだ選挙にいこう:2008/07/11(金) 18:06:31
上記 「Excelで出来ないこと、仕様上の制限」 は、一般的に出来ないとされていること、出来ないと思われるものです。
間違いがある可能性もあるので、上記に挙がってるもので「コレはこうすれば出来るよ」というものがあったらご指摘ください。
Excel2007についても未確認な項目が多いので変更点が有ればご指摘下さい。

また、ここに書かれてないことでも、Excelで出来ないことはたくさんあります。
ここに書かれてないからといって必ず出来るはずだなんて思わないように。

>▼環境・書式
> ・ セルのサイズ(幅、高さ)を、長さの単位(ミリメートルなど)で指定する
補足
2007ではページレイアウトビューの表示時に限り、幅・高さともcm単位で表示され、
指定も同じくcm単位でできる。
ただし大元がインチ系なのでなかなかピタリの値は出ない。1cm→0.98cmのように
近い値に勝手に丸められる。

6 :名無しさん@そうだ選挙にいこう:2008/07/11(金) 18:07:04
「路上で揉めるのも目立ちます。9800円のラブホに入りますか?」

        「はい」    「いいえ」

7 :名無しさん@そうだ選挙にいこう:2008/07/11(金) 18:07:04
   ||
   || ━ 質問のしかた ━
   ||
   || ★1 質問するときは、環境や条件をキチンと書くこと。情報後出しはダメ。
   || ★2 要望は具体例や図を使って明確かつ具体的にしる。
   || ★3 質問前に>>2-20あたりの注意書きやQ&Aを必ず読むこと。
   || ★4 質問テンプレ(雛形)は必須ではないが、
   ||    OSやExcelのバージョン、VBAの可否などは必須情報。
   ||
   ||            ∧ ∧   。
   ||          ( ,,゚Д゚)/ ジュウヨウ!!      E[]ヨ
    ̄ ̄ ̄ ̄ ̄ ̄ ̄ノ  つ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
                /  ̄ ̄ ̄ ./| ________________
                | ̄ ̄ ̄ ̄| | |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|____|/|
                        ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
      \    は〜〜〜〜い      /
    ∧ ∧    ∧,,∧   ∧ ∧
    ( ,, ∧▲  ミ  ∧ ∧ (  ∧ ∧
  〜(_(  ∧ ∧_( ∧ ∧_ミ・д・∧ ∧
    @(_(,,・∀・)@ (   *)〜ミ_ (   ,,)
      @(___ノ 〜(___ノ    〜(___ノ

エクセルの技術的な質問と関係ない議論・雑談は下記スレッドで。

【質問不可】Excel総合相談所スレの雑談・議論スレ2
http://pc11.2ch.net/test/read.cgi/bsoft/1151651536

8 :名無しさん@そうだ選挙にいこう:2008/07/11(金) 18:07:42
【 このスレの登場人物 】
┌─質問者───────────
どこにでもいるごく普通の初心者だったり
会社で上司に無理難題を押しつけられて困っている人だったりする。
たまに学生が宿題を持ち込んでくることも。
┌─回答者───────────
テンプレを使わないと無視したり、質問を小出しにするとキレたりするくせに
自分は回答を小出しにして優越感に浸りニヤニヤしている嫌なヤツ。
┌─自称回答者─────────
質問者を煽ったり、回答者を煽ったり、とにかくスレを引っかき回すだけで
何の役にも立たない賑やかし。単なるヒマ潰しでこのスレを見ている。
┌─VBA厨 ───────────
VBAは万能と信じ、どんな単純な問題もついVBAで解いてしまう。
Module1がデフォルトで挿入されている世界を夢見るが、いまだ実現していない。
その実態はほとんどが理系の(元)学生。ピボット厨に目の敵にされている。
┌─ピボット厨──────────
ピボットテーブルの機能が強力すぎるため、なんでもできると錯覚している。
口癖は「データを正規化して出直せ」「ピボッと参上ピボッと解決」など。
弱点は大嫌いなVBAを使わないとテーブルのリアルタイム更新ができないこと。
┌─啓蒙先生──────────
ピボット厨一派の過激派。Excelはピボットテーブルだけのためにあり、
それ以外の機能はワークシート関数すら不要と言い切る。ピボットテーブルで
解決できない質問からは威嚇しながら逃げる。最初から出てこなきゃいいのに。
┌─そのほか──────────
ワークシート関数厨……何重にも入れ子になった複雑怪奇な数式を作り出し、
関数だけでどんな問題も解いてしまう。たまに自分でも何をやっているか
わからなくなる。悩みは数式バーが1行しかないこと、頭が薄くなってきたこと。

配列数式厨……意外と使えるやつだが滅多に出てこない、というか出番がない。
極めてマイナーな存在。見かけたらその日はいいことがあるかも。

ナレーター……このわたくし。みなさんよろしく。

9 :名無しさん@そうだ選挙にいこう:2008/07/11(金) 19:38:06
三重県民乙

10 :名無しさん@そうだ選挙にいこう:2008/07/11(金) 21:15:11
>>8
先生、
テンプレ使わなくてもキレないけど、必要な情報が出てないと無視するというか回答を控えざるを得なく
VBAは万能だと信じてるというか知っているが、同時に「万能=全ての状況で最適」では無いことも知っており
ピボットも使うが、なんでも出来るとは錯覚しておらず、関数式では作業セル使って個々の式をシンプルにするのが好きだが
1つの式でとか作業列使わずにとか言われれば、数重ネストも配列数式も使い出す漏れは、何に該当しますか?

11 :名無しさん@そうだ選挙にいこう:2008/07/11(金) 21:37:52
なんというウザさ

12 :名無しさん@そうだ選挙にいこう:2008/07/11(金) 21:42:54
>>9
なんでも言われたとおりに答えるやつはヴァカです。
ちゃんと啓蒙しましょうね。

13 :名無しさん@そうだ選挙にいこう:2008/07/11(金) 22:03:28
>>10
自己満の役立たずと言います。いてもいなくても同じなので呼ばれ方を気にする事もないよ。

14 :12:2008/07/11(金) 22:09:09
アンカーミスったよ。
>>9ごめんな

15 :名無しさん@そうだ選挙にいこう:2008/07/11(金) 22:26:07
前スレ995がふがいないので、ずれてない表を作ってやったぞ

日付     1日  2日  3日  4日  5日  6日
走行距離 15km 20km 30km 20km 30km 15km
給油          5              20
燃費          A               B

A=(15+20)/5
B=(30+20+30+15)/20

俺からのアドバイスとしては、まず、横じゃなくて縦に並べるべき。
それから単位はいちいち入れずに数字だけを並べた方がいい。例↓


1 15
2 20 . 5 A
3 30
4 20
5 30
6 15 20 B

16 :名無しさん@そうだ選挙にいこう:2008/07/11(金) 22:32:12
ぶっちゃけ、その式じゃ燃費は求まらない

17 :名無しさん@そうだ選挙にいこう:2008/07/12(土) 05:10:44
R3C2 の値はR2C3、R4C3 の値はR3C4、のように、m行n列のセルがn行m列を参照するようにするには、 
どういった式にすればいいのでしょうか?

でたらめでエラーになる式ですが、なんとなくイメージはこんな感じで
=R( COLUMN() )C( ROW() )

要は、
 ABCDEF

B ×
C   ×
D     ×
E       ×
F         ×
のような形式の表で、
右片側を埋めてある状態で残りの空白を自動的にコピーしたいのです。

18 :名無しさん@そうだ選挙にいこう:2008/07/12(土) 06:21:37
>>17
勝敗表みたいなもんかな?
=INDIRECT(ADDRESS(COLUMN(),ROW()))とかでいけんじゃね?

19 :名無しさん@そうだ選挙にいこう:2008/07/12(土) 12:11:45
>>15はアホか?
ここの回答者どもは燃費の計算もできないの?


20 :名無しさん@そうだ選挙にいこう:2008/07/12(土) 13:08:16
燃費を計算するには給油量じゃなくて消費量が必要。
必ず満タン給油なら給油量=消費量になるが、今までの質問内容から、これがちょっと怪しい。
現時点ではデータの素性が明記されていないので計算可能かどうかは不明。

21 :名無しさん@そうだ選挙にいこう:2008/07/12(土) 13:08:38
>>18
ありがとうございます!
できました。

22 :名無しさん@そうだ選挙にいこう:2008/07/12(土) 16:10:18
>>19
だったらどうすりゃ良いか教えてくれよ
あんた自信あんだろ、感心するような解答見せてくれ
それとも、チャチャ入れるだけで全力使い果たしたのか

23 :名無しさん@そうだ選挙にいこう:2008/07/12(土) 16:39:19
>>22

中途半端な知ったか君は無理して回答しなくてもいいんだよ。


24 :名無しさん@そうだ選挙にいこう:2008/07/12(土) 16:54:29
噛み合わないなあw
ひょっとして懐かしの人口無能同士?

25 :名無しさん@そうだ選挙にいこう:2008/07/12(土) 16:56:06
>>22
常に満タンで給油しているか、十分長い計測期間のデータであれば燃料の給油量と消費量はほぼ等しいと考えられるから、
燃費=走行距離÷給油量

ただし給油が満タンとは限らず、計測期間が短い場合にはこの近似は成り立たない。

26 :名無しさん@そうだ選挙にいこう:2008/07/12(土) 17:02:23
>>24

>>22>>15の子じゃないの?

27 :名無しさん@そうだ選挙にいこう:2008/07/12(土) 17:30:19
>>15
>>22
ところで、燃費の計算するのにデータを横向きでなく、縦に並べたほうがいいのはなぜなの?


28 :名無しさん@そうだ選挙にいこう:2008/07/12(土) 17:48:55
聞くだけ無駄だろ〜

どうせ縦方向のが長いとかくだらない理由だろうからw

29 :名無しさん@そうだ選挙にいこう:2008/07/12(土) 20:21:45
>>27
エクセルの構造上、データは縦に並べた方が処理しやすいし、
処理方法も多いから

>>19
君はどう思う?


30 :名無しさん@そうだ選挙にいこう:2008/07/12(土) 20:27:52
データベースの基本だろ。
行はレコード、列はフィールドに対応する。
ttp://base.officehp.com/article/83221398.html
データは、特別な理由が無い限り縦に並べるもんだ。

31 :名無しさん@そうだ選挙にいこう:2008/07/12(土) 20:38:21
>16,19,24,26,28
この中で一番情けない人、だ〜れだっ


32 :名無しさん@そうだ選挙にいこう:2008/07/12(土) 20:48:58
>>29
>>30
ところで、燃費の計算するのにデータを横向きでなく、縦に並べたほうがいいのはなぜなの?


33 :名無しさん@そうだ選挙にいこう:2008/07/12(土) 20:59:22
>>30
なんでURLを完全に書かずに
ttp://…
なんて書いてるの?


34 :名無しさん@そうだ選挙にいこう:2008/07/12(土) 21:01:54
>>32
あのねぼく、目的は関係ないんだよ。
データの配列方向は縦でも横でも本質的な違いはなく、ぶっちゃけどっちでもいいんだけど、
何かしら統一された記述ルールがあった方がデータベースの設計効率が良くなるの。

道路が右側通行か左側通行か、どっちがいいかって言うのと同じ程度のこと。
ほかの人と同じにしといた方が都合がいいのよ。

35 :名無しさん@そうだ選挙にいこう:2008/07/12(土) 21:03:31
>>34
やっと正解にたどり着いたね。

36 :名無しさん@そうだ選挙にいこう:2008/07/12(土) 21:04:56
びっくりするほど頭悪いのに上から目線で見たがるのなあ
なんかもう感心するわ。すげーなあんた

37 :名無しさん@そうだ選挙にいこう:2008/07/12(土) 21:07:42
>>36
正直言って君たちの事が低く見えている。

38 :名無しさん@そうだ選挙にいこう:2008/07/12(土) 21:08:03
ああ、>>8の人か。お大事に。

39 :名無しさん@そうだ選挙にいこう:2008/07/12(土) 21:13:03
このスレおもろいな。もっとやれ。

40 :名無しさん@そうだ選挙にいこう:2008/07/12(土) 21:17:12
          r;;;;ミミミミミミヽ,,_
         ,i':r"      `ミ;;,
         彡        ミ;;;i
         彡 ⌒   ⌒ ミ;;;!
          ,ゞi" ̄ フ‐! ̄~~|-ゞ,  
         ヾi `ー‐'、 ,ゝ--、' 〉;r'  
         `,|  / "ii" ヽ  |ノ おまえら、もうすぐサマータイムくるから。
          't ト‐=‐ァ  /  よかったなぁ、サビ残増えるぞサビ残。
        ,____/ヽ`ニニ´/   
     r'"ヽ   t、     /      
    / 、、i    ヽ__,,/
    / ヽノ  j ,   j |ヽ  
    |⌒`'、__ / /   /r  |
    {     ̄''ー-、,,_,ヘ^ |
    ゝ-,,,_____)--、j
    /  \__       /
    |      "'ー‐‐--

41 :名無しさん@そうだ選挙にいこう:2008/07/12(土) 21:20:02
啓蒙先生のお小言にも耳を傾けるべきだよ。
ここの回答者のレベルが低いのは事実だと思う。
前スレの不等号のやつなんかありえない。


42 :名無しさん@そうだ選挙にいこう:2008/07/12(土) 23:31:09
Excelがいくらバージョンアップしても「最大行数>>最大列数」の理由を考えてみるといいよ。
縦横どっちでもいいんならワークシートは「最大行数=最大列数」の正方形でもいいはずだよね。

43 :名無しさん@そうだ選挙にいこう:2008/07/12(土) 23:33:28
データを縦に並べる意味、それは・・・





ピ ボ ッ ト テ ー ブ ル ! !

これ以外あり得ないw

44 :名無しさん@そうだ選挙にいこう:2008/07/12(土) 23:51:48
>>42
その理由とは?

45 :名無しさん@そうだ選挙にいこう:2008/07/13(日) 01:23:13
>>42
別に正方形でもかまわないわけなんだが。
ほんとに考えてる?
啓蒙のいうこのスレの頭の悪さってこういうことなのかな。

>>43
燃費計算をピボットテーブルでやるのはありだね。
その場合はデータを縦に並べるのがいいといえるな。

46 :名無しさん@そうだ選挙にいこう:2008/07/13(日) 04:55:29
>>34は明らかに間違ってる

47 :名無しさん@そうだ選挙にいこう:2008/07/13(日) 05:07:23
問題

A列に外国語の単語が入っている。ときどき2語以上の句も混じっている。
この状態で、つい打ち込んでしまった前後の半角スペースだけを取り除いて
B列に表示するにはどうしたらよいか。

48 :名無しさん@そうだ選挙にいこう:2008/07/13(日) 07:34:25
>>47
1、前後の半角スペースを取り除いたら単語がくっつくけどいいの??
2、半角をB列に移動するってこと?移動しても表示はできないけど?移動する意味は?
3、A列から半角スペースを取り除くだけでよかったなんて言わないよね?

これって宿題ですか?


49 :名無しさん@そうだ選挙にいこう:2008/07/13(日) 07:35:48
>>47

Trim

50 :名無しさん@そうだ選挙にいこう:2008/07/13(日) 08:33:24
いつからだ、ここが、ガキの溜まり場になってんのは
そろそろ夏厨が湧いて来るから、収拾付かないぞ!!

51 :名無しさん@そうだ選挙にいこう:2008/07/13(日) 08:53:07
自己紹介乙

52 :名無しさん@そうだ選挙にいこう:2008/07/13(日) 08:59:36
本当だなw
Q&Aの場と言うよりは、自己紹介の場になってるなw

53 :名無しさん@そうだ選挙にいこう:2008/07/13(日) 10:27:43
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel2000・2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 Excel VBA WorkSheet Undo beforesaveなど

複数のワークシートがあるブックで特定のシートを更新した時にそのシートにのみ
更新日などの情報を指定のセル(どこでも可)に表示する方法はありますか?
現在はbeforesaveでブックを保存するときにシート2のA4に表示させていますが
シート3だけ更新したときでも当然ながらシート2の日付も変更されてしまいます。
条件として、編集中にマクロで表示させるのは元に戻すことができなくなるのでなしでお願いします。
(WorksheetChangeでやってみました)

よろしくお願いいたします。

54 :名無しさん@そうだ選挙にいこう:2008/07/13(日) 10:38:51
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 一応
【4 VBAでの回答の可否】 可

複数のワークシートがあるブックで
ワークシートを一枚ずつめくって規定の作業を行い
最後まで終わったら終了するマクロとか出来ませんか?
アクティブシート内の編集程度でしたら組めるので参考にしたいです

55 :名無しさん@そうだ選挙にいこう:2008/07/13(日) 11:27:02
>>48
日本語を理解できない方は無理に回答しようとしなくていいんですよ。

56 :名無しさん@そうだ選挙にいこう:2008/07/13(日) 12:27:23
ってか、質問するやつも簡潔に質問しろよ。
たとえば「前と後ろのスペースを取るにはどうしたらいいですか?」とかね。
答えはすでに出てるけど=TRIM(A1)だが。

57 :名無しさん@そうだ選挙にいこう:2008/07/13(日) 12:29:36
>>56
それじゃ全角スペースも取り除くから違うんじゃね?

58 :56:2008/07/13(日) 12:45:31
>>57
そういう引っかけ問題なのか?
じゃぁ全角スペースを何かに置き換えておけばいいだろうね。
=SUBSTITUTE(TRIM(SUBSTITUTE(A1," ","@hoge@")),"@hoge@"," ")
とか

59 :47:2008/07/13(日) 12:56:59
みなさんありがとうございます。
手入力によくある事態を解消する方法ということでした。
打鍵中に勢いで不必要な半角スペースを打っちゃうことがありますよね。
どこにあるか分からないそういう単語の前後にくっついた半角スペースを、
語と語の間の正当な半角スペースを傷つけることなく取り除き、
かつ、語と語の間の全角スペースもついでに拾い出して半角に直してしまうような式はできないかなという、
そういう相談でした。

trimは当然思いつくのですが、それだと語と語の間の正当なスペースも取れちゃいますよね。
仮に英語だとして、good moningもくっついちゃいます。それはまずい。
ではどうしたら?ってことでした。

60 :名無しさん@そうだ選挙にいこう:2008/07/13(日) 12:59:14
Excelでやる必要はあるまい
Wordなら置換に行頭・行末記号が使えるからかんたん

61 :名無しさん@そうだ選挙にいこう:2008/07/13(日) 13:02:06
申し訳ない。EXCEL指定なんです。
ほかのデータとの参照が張り巡らされているので、
できればエクセル上で処理したいんですね。
実際はA列に単語がずらーっと並んでいるだけのシートではないもので。
レスありがとうございました

62 :名無しさん@そうだ選挙にいこう:2008/07/13(日) 13:02:46
>>59
ワークシート関数のTRIMは前と後ろのスペースは取るが、語と語の間のスペースは取らんだろ?

63 :名無しさん@そうだ選挙にいこう:2008/07/13(日) 13:03:42
>>62
!すぐに確認してきます。

64 :名無しさん@そうだ選挙にいこう:2008/07/13(日) 13:06:24
>>62
お!解決しました。ありがと!

65 :62:2008/07/13(日) 13:07:58
正確には語と語の間のスペースが2個以上あれば、1個だけ残してあとは全部取っちゃうけどね。

66 :名無しさん@そうだ選挙にいこう:2008/07/13(日) 13:17:31
>>65
なおよしです。あとは全角スペースを半角に置き換えちゃえばいいですね。

67 :名無しさん@そうだ選挙にいこう:2008/07/13(日) 13:35:59
>>53
更新情報を管理したいんであれば、「ブックの共有」機能の「変更履歴の記録」を使えば済むかもね。
ちょいと大袈裟で細かくなってしまうけど。

そうでなきゃ、別のシートに記録だけ書きこむとか
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
 Application.EnableEvents = False
 Worksheets("変更記録").Cells(Sh.Index, 1).Value = Sh.name
 Worksheets("変更記録").Cells(Sh.Index, 2).Value = Now()
 Application.EnableEvents = True
End Sub

フラグ立てながら監視して、シート切り替え時と保存時に書きこむとか?

Private isChange As Boolean
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
 sChange = False
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal target As Range)
 isChange = True
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
 If isChange Then Call record(ThisWorkbook.ActiveSheet)
End Sub
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
 If isChange Then Call record(Sh)
End Sub
Private Sub record(target As Worksheet)
 target.Range("A1").Value = Format(Now(), "yyyy年m月d日")
End Sub


68 :名無しさん@そうだ選挙にいこう:2008/07/13(日) 13:41:06
>>54
できると思うけど、どんな業務を想定してるのかがわかんないとなんとも。
アンケートみたいなのかな?それだったら、ハイパーリンクでシートを結ぶだけで
めくる感じでいけんじゃない?

で、最後のシートで「登録」ボタンみたいなの押すと、必須項目のセルに値が入って
いるかどうかをチェックして終了とか。

具体的な処理は、なにをさせたくて、何をさせたくないかによっていろいろ変わってくるんじゃないかな。

69 :名無しさん@そうだ選挙にいこう:2008/07/13(日) 15:33:32
>>67さんありがとうございます。

別シートに書き込むのもありかと思いますが
今回は二番目に提示していただいた方法

>フラグ立てながら監視して、シート切り替え時と保存時に書きこむとか?

をベースとしてやらせていただきたいと思います。
助かりました。ありがとうございました。

70 :名無しさん@そうだ選挙にいこう:2008/07/13(日) 18:36:26
【1 OSの種類         .】 WindowsXP SP2
【2 Excelのバージョン   】 Excel 2003
【3 VBAが使えるか    .】 少々
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 excel プルダウン アクティブ カーソル&合わせる 等

フォームのリストボックスやコンボボックスはよく使用しますが
セルをアクティブにした途端にコンボボックスのように振舞うセルに出会いました。

ブック内を検索してもプルダウンに現れるリストがありません。
[データ]→[リスト]で作成できるリストは候補が必要で
少し違うのかなと感じています。

コレを使えたらブックをもっとシンプルに出来ると期待しています。
指南いただけないでしょうか。

71 :名無しさん@そうだ選挙にいこう:2008/07/13(日) 18:39:18
>>70
データ→入力規則じゃね?

72 :名無しさん@そうだ選挙にいこう:2008/07/13(日) 18:42:00
何百もデータがあって
そのデータを別のシートの一部の場所に
一つずつ表示させたいんですができますか?

例えば年賀状の名前と住所の所だけ変えていく
みたいな感じです。

73 :名無しさん@そうだ選挙にいこう:2008/07/13(日) 18:52:12
>>71
その通りです。
入力規則の使い方をググったところ見事同様のものが作成できました。
大変有難う御座いました!

74 :名無しさん@そうだ選挙にいこう:2008/07/13(日) 19:05:30
>>72
リストはExcelでつくって印刷はwordで差し込み印刷をする

75 :名無しさん@そうだ選挙にいこう:2008/07/13(日) 19:30:07
>>72
フリーソフトで「エクセルではがき作成」ってのがあるよ
中々の物です。参考にどうぞ

76 :名無しさん@そうだ選挙にいこう:2008/07/13(日) 19:37:02
>>72
1つずつ表示、を詳しく説明しないと、
はがき印刷がらみのピンと外れのレスしかこないぞ。

77 :名無しさん@そうだ選挙にいこう:2008/07/13(日) 20:29:23
>>74-76
ありがとうございます
解決しました

78 :名無しさん@そうだ選挙にいこう:2008/07/13(日) 21:45:17
【1 OSの種類         .】 Windows xp
【2 Excelのバージョン   】 Excel 2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否否

0:00の時表示しない方法はわかるのですが
入力されてないセルの合計を出すと#######と
表示されます。なにかよい方法ありますか?

79 :名無しさん@そうだ選挙にいこう:2008/07/13(日) 21:48:38
>>78
セルの幅を広げる

80 :名無しさん@そうだ選挙にいこう:2008/07/13(日) 21:57:32
>>78
セルの幅を広げても同じでした
負であるか、大きすぎる日付および
時間は######と表示されますとでます。

81 :名無しさん@そうだ選挙にいこう:2008/07/13(日) 21:59:35
>>79の間違いでした


82 :名無しさん@そうだ選挙にいこう:2008/07/13(日) 22:04:09
>>80
h:mm;;;

83 :名無しさん@そうだ選挙にいこう:2008/07/13(日) 22:09:08
>>82
何も表示されませんでした


84 :名無しさん@そうだ選挙にいこう:2008/07/13(日) 22:53:57
>>80
###の場合、[エラーチェックオプション]ボタンは表示されないし、
エラーチェックもスルーされるし、エラーのトレースも出ないし・・・?
> 負であるか、大きすぎる日付および時間は######と表示されます
ということだけれど、どこにどのようにそう表示されているのでしょう。

(念のため)セルの幅は自動で広げているのですか?
新しいブックで試してみても同様の症状になりますか?

85 :名無しさん@そうだ選挙にいこう:2008/07/13(日) 23:33:31
>>84
たとえばA1に1:00、B1に2:00、C1=A1-B1ってして時間がマイナスになるようにしてみ。
セルの幅をどんだけ広げても###が表示されるから。

>>83
0:00を表示しなくさせる方法ってのを、どうやったのか詳しく書いて。
それによって対処方法が違ってくるから。

86 :名無しさん@そうだ選挙にいこう:2008/07/13(日) 23:35:40
>>84
A1=8:00 B1=17:00 C1=B1-A1-A10(セルの書式h:mm;;)
A2=空欄 B2=空欄 C2=B2-A2-A10(セルの書式h:mm;;)






A10=9:00 C10=SUM(C1,C2)(セルの書式[h]:mm)
の様な式です


87 :名無しさん@そうだ選挙にいこう:2008/07/13(日) 23:43:15
>>86
A1=8:00
B1=17:00
A10=9:00

なら

C1=B1-A1-A10

は0:00になるから、何も表示されなくて正解だと思うんだけど。
もちろんC2も空白になるし、C10も空白になる。それで合ってるんじゃないの?

88 :名無しさん@そうだ選挙にいこう:2008/07/14(月) 00:02:12
C10の書式がh:mm;;なら空欄だけど、[h]:mmだと###になった。
[負の日付または時間は####と表示されます] と表示された。

>>85
サンクス!なったなった!

89 :名無しさん@そうだ選挙にいこう:2008/07/14(月) 00:08:09
>>86
それはつまり、A10とC10は[h]:mm;;;にすればいいのでは

90 :名無しさん@そうだ選挙にいこう:2008/07/14(月) 07:48:22
申し訳ない!教えてください。
その場合の セミコロン は、どういう役割を果たしているのでしょうか。
どういう状況で使われるものですか?
検索したのですがわかりませんでした。

91 :名無しさん@そうだ選挙にいこう:2008/07/14(月) 07:57:05
>>90
正の数に対する書式 ; 負の数に対する書式 ; 0になった場合の書式 ; 文字列の書式
何も書かないと何も表示されなくなる

今回の場合、負の数はエラーになるし、当人の意向により0は表示したくないらしいので
2番目、3番目の書式に何も書かなかった。そのためセミコロンだけが連続する結果となった。
文字列を入力した場合の処理はなんとも書いてないので、セミコロンの最後の一つは
意味がない可能性もある。

92 :名無しさん@そうだ選挙にいこう:2008/07/14(月) 11:55:11
【1 OSの種類       .】 Windows xp
【2 Excelのバージョン 】 Excel 2007
【3 VBAが使えるか   .】 いいえ
【4 VBAでの回答の可否 .】 否
セルA1にBOOKの名前(ファイル名)を表示させるような関数はありますか?


93 :名無しさん@そうだ選挙にいこう:2008/07/14(月) 12:40:07
>>92
「名前を付けて保存」してから
=REPLACE(REPLACE(CELL("filename"),FIND("]",CELL("filename")),255,""),1,FIND("[",CELL("filename")),"")

先に式を入れちゃだめだよ。まず保存だよ。

94 :名無しさん@そうだ選挙にいこう:2008/07/14(月) 13:24:20
>>93
=MID(CELL("filename",A1),FIND("[",CELL("filename",A1))+1,FIND("]",CELL("filename",A1))-FIND("[",CELL("filename",A1))-1)
結果は一緒だけど

CELL("bookname",A1)やCELL("sheetname",A1)って使えるようにしてほしいんだけどなぁ・・


95 :名無しさん@そうだ選挙にいこう:2008/07/14(月) 13:30:03
アンカーは態とか?
いるよねぇ、こういう奴

96 :名無しさん@そうだ選挙にいこう:2008/07/14(月) 15:18:51
>>91
「Excel ユーザー定義 表示形式 セミコロン」、
という条件で検索をかけたとき、確かにそうした結果でしたのに、
そこまで頭が回りませんでした。
たとえが違うかもしれませんが、IF関数の""のような使い方ができるのですね。

ありがとうございました。

97 :名無しさん@そうだ選挙にいこう:2008/07/14(月) 21:52:12
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 vba テキストファイル 複数開く

【前提条件】
・同一フォルダ内に、「Before」フォルダ・「After」フォルダ・「ツール.xls」ファイルがある。
・「Before」フォルダには、テキストファイルが格納されている。
・「Before」フォルダ内のテキストファイルの行頭は、必ず「AAA」・「BBB」のどちらかで始まる。
 (複数行に渡る場合、各行の行頭が上記のようになっている)
・「After」フォルダには、「AAA」フォルダ・「BBB」フォルダが格納されている。

【やりたいこと】
1 「Befor」フォルダ内に格納されている全テキストファイルと同一名称のテキストファイルを、
  「After」フォルダの「AAA」フォルダ・「BBB」フォルダ両方に作成する。
 (ファイル内は空でよい)

2 「Befor」フォルダ内のデータを見に行き、
  「AAA」で始まっている行は「After」フォルダの「AAA」フォルダ内に格納された同一名称のテキストファイルに、
  「BBB」で始まっている行は「After」フォルダの「BBB」フォルダ内に格納された同一名称のテキストファイルにコピーする。

以上の処理を実現するためのコードをVBAで作成していますが、下記の「'エラーメッセージ」の行で、
「ファイルは既に開かれています」というエラーが出てしまいます。

どのようなコードを書けば、上記の処理を実現することができるのでしょうか。
よろしくお願い致します。

98 :名無しさん@そうだ選挙にいこう:2008/07/14(月) 21:53:50
Sub FileMake()
Dim FileName As String, FileData As String
Dim no1 As Long, no2 As Long
Dim i As Long

FileName = Dir(ThisWorkbook.Path & "\Before\*.*")
Do While FileName <> ""
no1 = FreeFile

Open ThisWorkbook.Path & "\After\AAA\" & FileName For Output As #no1
Close #no1
Open ThisWorkbook.Path & "\After\BBB\" & FileName For Output As #no1
Close #no1

FileName = Dir()
Loop

99 :名無しさん@そうだ選挙にいこう:2008/07/14(月) 21:54:21
FileName = Dir(ThisWorkbook.Path & "\Before\*.*")
Do While FileName <> ""
no1 = FreeFile
no2 = FreeFile

Open ThisWorkbook.Path & "\Before\" & FileName For Input As #no1

Do While Not EOF(no1)
Line Input #no1, FileData

If FileData Like "AAA*" Then
Open ThisWorkbook.Path & "\After\AAA\" & FileName For Output As #no2  'エラーメッセージ
Print #no2, FileData
Close #no2
ElseIf FileData Like "BBB*" Then
Open ThisWorkbook.Path & "\After\BBB\" & FileName For Output As #no2
Print #no2, FileData
Close #no2
End If
Loop

Close #no1

FileName = Dir()
Loop
End Sub

100 :名無しさん@そうだ選挙にいこう:2008/07/14(月) 23:08:56
>>97
ここがまずい

> no1 = FreeFile
> no2 = FreeFile

FreeFile関数は「Openされていない」ファイルの番号を返すので、no1をOpenする前にFreeFileを呼んでしまうと
no2にも同じ値が入ってしまう。
対策としてはDo〜Loopの中にno2 = FreeFileを移す。

101 :名無しさん@そうだ選挙にいこう:2008/07/14(月) 23:11:45
Loopの中に入れるのは、さすがに無駄が多いか。こっちのがいいかな。

修正前

no1 = FreeFile
no2 = FreeFile
Open ThisWorkbook.Path & "\Before\" & FileName For Input As #no1

修正後

no1 = FreeFile
Open ThisWorkbook.Path & "\Before\" & FileName For Input As #no1
no2 = FreeFile

102 :名無しさん@そうだ選挙にいこう:2008/07/14(月) 23:13:42
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 不可
【5 検索キーワード     】 重複セル 

データの重複したセルと空白のセルを削除して行を詰めるには
どうしたら良いですか?

リンゴ       リンゴ  2
リンゴ  2    みかん  1
みかん  1   ⇒メロン  3
メロン
メロン
メロン  3

103 :名無しさん@そうだ選挙にいこう:2008/07/14(月) 23:19:52
>>102
オートフィルタ

104 :名無しさん@そうだ選挙にいこう:2008/07/14(月) 23:24:11
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 不可
【5 検索キーワード     】 書式

A〜E列の5列に1〜100まで合計500個の文字が入っています。
先頭の文字が全部同じなんですが、その先頭だけ文字の色を青くしたいんです。
セルにカーソルを入れて1っこずつやると日が暮れてしまうので、
なにか一発でドンと処理する方法はないでしょうか。


105 :名無しさん@そうだ選挙にいこう:2008/07/14(月) 23:48:30
>>104
ない。部分的に色を付けるのはVBA使わないと無理。

106 :名無しさん@そうだ選挙にいこう:2008/07/15(火) 00:00:15
>>105
そっすかあ。残念です。
マクロの自動記録でできないかなあと浅知恵発揮しましたけど、
駄目でした。自動記録あたりでなんとかなる方法はないでしょうか。

107 :名無しさん@そうだ選挙にいこう:2008/07/15(火) 00:02:01
>>106
1個だけ色を付ける操作をマクロで記録して、あとはそれを500回繰り返すようにVBAを書けばいいだけだよ。

108 :名無しさん@そうだ選挙にいこう:2008/07/15(火) 00:07:02
>>107
それが一個だけ色をつける記録が残らんのですよ。
残ってくれればそれは500回やるだけでも労力半減なんですけどねw
もしよかったらためしに記録してみてください。
私は、自動記録開始して、
セルにカーソル入れて、先頭の一文字を反転させて、
赤色ボタンを押して、エンターキー押して、記録終了ボタン押しました。
でも実行してもうまくいかない・・・・・・・・・・・・・・・

109 :名無しさん@そうだ選挙にいこう:2008/07/15(火) 00:09:01
付け足すと、
実行するとセルの中の文字が全部赤・・・じゃなかった青になっちゃうんですよね。
カーソル入れて一文字だけ指定して、の部分が記録に残らないみたいです。

110 :名無しさん@そうだ選挙にいこう:2008/07/15(火) 00:12:02
>>108
試しにやってみたら、全部で34行もあるマクロが記録されたよ?

111 :名無しさん@そうだ選挙にいこう:2008/07/15(火) 00:13:46
>>110
あらあ。何が違うのかなあ。
それでほかのセルで実行しても先頭だけ色が変わります?

112 :名無しさん@そうだ選挙にいこう:2008/07/15(火) 00:16:36
=LEFT(A1)で先頭1文字
=RIGHT(LEN(A1)-1)で残りの文字
に分割して、先頭1文字の列だけに色を付けるってのは駄目?

113 :名無しさん@そうだ選挙にいこう:2008/07/15(火) 00:17:23
あ、できました。
セルじゃなくて、シートの上にある横長の白いところ、左端にfxって書いてる部分。
そこでカーソルを入れて色変えて保存したらできました。
これを編集して500回コピーすればいいんですよね

114 :名無しさん@そうだ選挙にいこう:2008/07/15(火) 00:18:30
>>112
分割して先頭にだけ色をつけて、concatenateでつなぐってやってみましたけど、
くっつけるとそのセルの書式になっちゃうから、うまくいかなかったです。
レスありがとうございました。

115 :名無しさん@そうだ選挙にいこう:2008/07/15(火) 00:20:00
>>111
ちゃんと変わるよ。
セルを選択する前の状態からマクロの記録を開始して、Enterを押して確定させてから記録の終了してる?

つーか、もうめんどくさいから答えを書いといてやる。
VBAだとたった5行、こんなに簡単なプログラムで色が付けれるんだよ。覚えて損はないと思うぞ。

Sub Macro1()
  For Each C In Range("A1:E100")
    C.Characters(Start:=1, Length:=1).Font.Color = vbBlue
  Next C
End Sub

116 :名無しさん@そうだ選挙にいこう:2008/07/15(火) 00:25:10
>>115
行った!と思ったけどだめでした。
繰り返してみたら、こんどは全部最初に記録したセルの内容に代わっちゃいました。
つまり全部同じデータになっちゃう。。。。。。。。

ということでありがとうございます。
それ試してみます。

117 :名無しさん@そうだ選挙にいこう:2008/07/15(火) 00:27:41
>>116
マクロの最初に

ActiveCell.FormulaR1C1 = "なんとか"

って部分があるでしょ。それがセルの内容だから、その部分を削除しないとみんな同じになっちゃうよ。

118 :名無しさん@そうだ選挙にいこう:2008/07/15(火) 00:27:42
>>115
感動していいですか・・・・・・・・・・・感動しました。

119 :名無しさん@そうだ選挙にいこう:2008/07/15(火) 00:37:45
>>117
後学のために試してみました。
なんとか、の部分を削除して""だけにして実行したら、なくなっちゃいましたw
なんか理解ができてないみたいです。
とにかく目的を果たすことはできました。
もう3回ぐらいやって感動し続けてます。
マクロができると本当にいいですねえ。
ありがとうございました。

120 :97:2008/07/15(火) 00:37:56
>>100
上手くいきました!

ありがとうございました。

121 :名無しさん@そうだ選挙にいこう:2008/07/15(火) 00:41:52
>>119
データの部分だけじゃなくて、1行丸ごと削除するのよ

122 :名無しさん@そうだ選挙にいこう:2008/07/15(火) 12:28:55
>>115
条件固定ならループ回す必要ないよ
Range("A1:E100").Characters(Start:=1, Length:=1).Font.Color = vbBlue
だけで、同じ結果な上に処理もループより遙かに高速
5行も使う必要無く、処理は1行、プロシージャ宣言含めても3行で済む

Rangeオブジェクトのメンバは、複数セルを対象に出来る物が多いから、覚えて損はないと思うぞ

123 :名無しさん@そうだ選挙にいこう:2008/07/15(火) 13:52:55
すいません 前スレに質問したものの、答えを見る前にdat落ちしてしまいました。
どなたか、23-08時までのものを深夜として計算する方法をご存じないでしょうか。
(出勤20時・退社時間5時とか毎回違うのです)


124 :名無しさん@そうだ選挙にいこう:2008/07/15(火) 14:18:05
>>123
終了<開始なら終了に+24hしてから計算(作業列でも、ifでも)
23時以前、深夜時間帯(23時以前開始で深夜時間帯終了・
深夜時間帯開始で深夜時間帯終了・深夜時間帯開始で32時以降終了)、
8(32)時以降と5つに列を分けて計算して合計するのが一番楽

23以前を例にすると
=if(開始時刻>=23/24,"",23/24-開始時刻)
って感じで

125 :名無しさん@そうだ選挙にいこう:2008/07/15(火) 14:37:39
こんにちは、ちょっと質問テンプレにあてはまらなかったんでフリーで質問します。
こんな感じの表を使いたいんですけど
ttp://www.odnir.com/cgi/src/nup18041.jpg
Excelは全く素人なので無料テンプレートってありますか?探したんですけどなかなか合うものがなくて…

126 :名無しさん@そうだ選挙にいこう:2008/07/15(火) 14:47:19
> なかなか合うものがなくて…
ドンピシャのものなんてそうそう有るもんじゃない。
ましてや>>125みたいに「計算表として不適切な構成」の場合は得にね。

127 :名無しさん@そうだ選挙にいこう:2008/07/15(火) 16:14:47
>>126
> 計算表として不適切な構成

横からスマン。
確かに行も列も・・・。

こんな感じならOK?
http://pict.or.tp/img/66647.gif

128 :名無しさん@そうだ選挙にいこう:2008/07/15(火) 16:33:03
A1からI50の範囲に数式が色々入っており、それを行だけ相対参照で一つ下にずらし(列方向は絶対参照になっています)、
J1:R50の範囲にコピーペーストしたいと思ってます。

例としてA1には数式=sheet1!$A1が入っており、j1には=sheet1!$A2、S1には=sheet1!$A3と入力されるようにしたいのです。
このコピーペーストを横に27回分、28回目のコピーペーストからはA51セルから始まります。
これをおおよそ200回分繰り返します。

そして以下のマクロを考えたのですが、当方旧式のパソコンのため処理が重く困っています。
もっと軽くしていただくことは出来ないでしょうか?

Range("A1:I50").Select
Selection.Copy
Range("J2").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Selection.Cut Destination:=Range("J1:R50")
Range("J1:R50").Select
Selection.Copy
Range("S2").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Selection.Cut Destination:=Range("S1:AA50")
Range("S1:AA50").Select
Selection.Copy
Range("AB2").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Selection.Cut Destination:=Range("AB1:AJ50")
Range("AB1:AJ50").Select

・・これで三回分です。現状、これを500回分作ってあります。分割しないと文字数オーバーなので分割までしてあります。
分かりにくい説明ですみませんが、よろしくお願いします。

129 :名無しさん@そうだ選挙にいこう:2008/07/15(火) 17:17:05
>>126
そうですね〜

>>127
そうです!そんな感じです!
用は得意先ごとの粗利が分かるようにしたいんです。

130 :NAME IS NULL:2008/07/15(火) 17:18:48
使っているのは2002SP3。

0001×10、0002×10、・・・0100×10まで1100行まで入力しなければならなくなったのですが、
ドラッグで一気に入力できませんでしたっけ。
一応、0001×10、0002×10の20行を左クリック選択してドラッグしてみたが、
0001と0002が10行ずつくり返されてしまう。

131 :名無しさん@そうだ選挙にいこう:2008/07/15(火) 17:47:59
>>130
書式設定で0000
又はA1からドラッグした後
=TEXT(A1,"0000")
と入れてドラッグ。こっちならコピーして値で貼り付けすれば0001などの値が保持される

132 :名無しさん@そうだ選挙にいこう:2008/07/15(火) 19:11:50
マクロの先頭に

 With Application
   .ScreenUpdating = False
   .DisplayAlerts = False
   .EnableAnimations = False
   .EnableAutoComplete = False
   .EnableEvents = False
   .EnableAutoFilter = False
   .EnableCalculation = False
   .EnableOutlining = False
   .EnablePivotTable = False
 End With

マクロの最後に

 With Application
   .ScreenUpdating = True
   .DisplayAlerts = True
   .EnableAnimations = True
   .EnableAutoComplete = True
   .EnableEvents = True
   .EnableAutoFilter = True
   .EnableCalculation = True
   .EnableOutlining = True
   .EnablePivotTable = True
 End With

これらを追加するだけで、かなりスピードうpするはず。
さらに速くしたい場合は、プログラムを根本的に見直すしかない。

133 :132:2008/07/15(火) 19:13:00
アンカーつけるの忘れた。
>>132>>128へのレスね。

134 :132:2008/07/15(火) 19:19:00
ぐだぐだでごめん。それぞれ

 With Application
   .ScreenUpdating = False
   .DisplayAlerts = False
   .EnableAnimations = False
   .EnableAutoComplete = False
   .EnableEvents = False
 End With
 With ActiveSheet
   .EnableAutoFilter = False
   .EnableCalculation = False
   .EnableOutlining = False
   .EnablePivotTable = False
 End With


 With Application
   .ScreenUpdating = True
   .DisplayAlerts = True
   .EnableAnimations = True
   .EnableAutoComplete = True
   .EnableEvents = True
 End With
 With ActiveSheet
   .EnableAutoFilter = True
   .EnableCalculation = True
   .EnableOutlining = True
   .EnablePivotTable = True
 End With

の間違いです。

135 :名無しさん@そうだ選挙にいこう:2008/07/15(火) 19:56:20
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 株価 結合 グラフ エクセル 複数 などなど


株価チャートのグラフを複数作って、
それを一つのグラフ内に乗せたいのですが、コピー→貼り付けをやっても
高値安値終値を勝手に修正させられてしまします。
X軸1あたりで、4つの株価情報があると思ってくれると正しいと思います。
もう図にして透明化でもして合成するしか方法がないでしょうか?
ちなみにカレイダグラフではできるのですが、エクセルでも同じことがしたいです。

136 :名無しさん@そうだ選挙にいこう:2008/07/15(火) 21:39:11
>>134
ありがとうございます!
明日試してみます(会社のbook・マクロは持ち出せない為・・申し訳アリマセン)

137 :名無しさん@そうだ選挙にいこう:2008/07/15(火) 22:06:13
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

数値を有効数字で表す際の質問です。

3桁目を四捨五入し、有効数字2桁までで表すようにします。
以下のようにすることが目的です。

@ 9.04→9.0
A 9.05→9.1
B 10.49→10
C 10.50→11
D123.45→120

例:対象の数字がA1に入っている場合
=ROUND((A1*10^(INT(LOG10(A1))*-1)),1)*10^(INT(LOG10(A1)))

上記の関数を思いついたのですが、@が「9.0」ではなく「9」になってしまいます。
セルの書式設定やFIXED関数で小数点第1位までの表示にすると、B〜Dに小数点が入ってしまいます。
方法が分かる方、ご教授お願い致します。


138 :名無しさん@そうだ選挙にいこう:2008/07/15(火) 22:17:03
>>129
データを以下のように入力してピボットテーブルを使う。
粗利は集計アイテムの追加で。

得意先  月   区分   金額
○○商事 1月  売上   2345
○○商事 1月  仕入   1223
○○商事 2月  売上   3456
○○商事 2月  仕入   2111
××会社 1月  売上   6543
××会社 1月  仕入   3244
××会社 2月  売上   8965
××会社 2月  仕入   5336


139 :137:2008/07/15(火) 23:06:26
自己解決できました。
もし解決策を考案中の人がいましたらごめんなさい。


140 :名無しさん@そうだ選挙にいこう:2008/07/15(火) 23:09:01
>>139
どう解決したかぐらい書いてけよ

141 :名無しさん@そうだ選挙にいこう:2008/07/15(火) 23:09:50
>>139
私も興味あります。


142 :名無しさん@そうだ選挙にいこう:2008/07/15(火) 23:10:43
1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

  A    B    C     D      E   
1 名前   性別   住所    TEL   携帯メール  
2 山田   男    東京都 090-1111-2222 yamada@docomo
3 田中   女    大阪府 090-5555-6666 tanaka@docomo
4 鈴木   女    北海道 090-1111-3333 suzuki@ezweb
5 古賀   男    東京都 090-2222-4444 koga@softobank
6 山下   男    宮崎県 090-3333-5555 yamashita@ezweb

 上記のような表があり、6行目まで埋まったら2行空けて9行目から上記の表を
追加し、以下同じように15行目まで埋まったらまた2行空けて18行目から表を追
加するようなマクロかVBAを組みたいのですが、いい方法が思いつきません。
どなたかご教授願います。一応A1〜E6は罫線で囲っているつもりでお願い
します。あと印刷範囲も表がある範囲だけを自動で指定できたら幸いです。








143 :名無しさん@そうだ選挙にいこう:2008/07/15(火) 23:10:53
>140

イラネーヨ

144 :名無しさん@そうだ選挙にいこう:2008/07/15(火) 23:15:14
>>142
何を目的としてるのか分からんが、
「印刷タイトル」の機能を知ってれば単純に解決できるような問題のような希ガス。

145 :名無しさん@そうだ選挙にいこう:2008/07/15(火) 23:25:53
>>144 確かにこの場合だと単純に印刷タイトルでA1〜E1を指定すれば解決
できますが、目的としては印刷タイトルが使えない様な複雑な表の場合にマク
ロを使って表を挿入したいのですが・・・

146 :名無しさん@そうだ選挙にいこう:2008/07/15(火) 23:32:57
>>145
>>印刷タイトルが使えない様な

多分そこが間違い。
どーしてもマクロでやりたきゃ自動記録してみな。

147 :137:2008/07/16(水) 00:14:12
>>140
>>141
以下のようにやりました。
=FIXED(ROUND((A1*10^(INT(LOG10(A1))*-1)),1)*10^(INT(LOG10(A1))),(1+INT(LOG10(A1))*-1))

結局FIXED関数で文字列にして、先ずは見た目上の体裁を整える方向に。
集計など、数値として扱いたいときは、さらにVALUE関数を用いて文字列→数値に戻すので、目的は達成したもののあんまりスマートな方法ではないように思いますが。


148 :名無しさん@そうだ選挙にいこう:2008/07/16(水) 00:20:42
>>147
[<10]0.0;[>=10]00;G/標準

149 :名無しさん@そうだ選挙にいこう:2008/07/16(水) 00:29:51
桁落ちとか考えなくていいの

150 :137:2008/07/16(水) 00:38:09
>>148
ユーザー定義をすっかり忘れていました!
ありがとうございます。
>>149
どうせ極端な数字は入ってこないので大丈夫かと。


151 :名無しさん@そうだ選挙にいこう:2008/07/16(水) 00:42:06
>>150
>>148の書式と組み合わせて、これでいけると思うんだが
=ROUND(A1,1-INT(LOG(ABS(A1))))

152 :名無しさん@そうだ選挙にいこう:2008/07/16(水) 00:45:00
>>151
0.01が0になるぞ。有効2桁なら0.010にならないといけないのでは。

153 :名無しさん@そうだ選挙にいこう:2008/07/16(水) 00:50:15
>>147はちゃんと0.010になるぞ。よく考えたなあ。


154 :名無しさん@そうだ選挙にいこう:2008/07/16(水) 07:30:47
>>132
ありがとうございます!!感動!!
しかもコードの見直しよりもよっぽど確実ですね

155 :名無しさん@そうだ選挙にいこう:2008/07/16(水) 07:40:13
>>142
新規シートでも作って6行ごとに2回挿入繰り返し、
んで目的のシートにコピーするとか
自動記録でもできると思う

156 :130:2008/07/16(水) 09:44:33
>>131

感謝!! おかげで終わりました。


157 :名無しさん@そうだ選挙にいこう:2008/07/16(水) 10:21:34
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 Excel 初期状態 まっさら

質問させていただきます。
デスクトップにおいてあるExcelファイルを表示しようとクリックすると、以前までは一度で
入力されていたデータがはいったスタイルシートが表示されていたのですが、
ある日から、クリックしても一度目のクリックでは初期状態のスタイルシート(Excelのショートカットアイコンをクリックしたのと同じ状態)
しか表示されなくなりました。。その状態でもう一度デスクトップにあるファイルをクリックすると、
以前のように入力していたそのファイル内のデータが読み込めます。。
あるいは、左上のタブにある「ファイル」→「開く」の手順を踏めば開けるのですが、
デスクトップに置いてあるExcelファイルを以前のように一度で開けるようにしたいです。
原因がわかるかたがいらっしゃいましたらどうかご教授ください。。

158 :名無しさん@そうだ選挙にいこう:2008/07/16(水) 10:28:43
>>157
アプリケーションのアイコンじゃなくてデータファイルのアイコンをダブルクリックする。

あと、スタイルシートじゃなくてワークシートな。

159 :名無しさん@そうだ選挙にいこう:2008/07/16(水) 18:28:52
>>135 仕様のため解決できない問題でしょうか?

160 :名無しさん@そうだ選挙にいこう:2008/07/16(水) 19:24:34
【1 OSの種類         .】 Windows2000
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 一応
【4 VBAでの回答の可否】 可
A列に1,2,5,9,13のどれかが入っていればB列に1
3,7,8,12のどれかが入っていればB列に2
その他の数字が入っていればB列は""というような処理をしたいです
簡単な方法ありませんか?

161 :名無しさん@そうだ選挙にいこう:2008/07/16(水) 19:50:18
VLOOKUP()とかCHOOSE()とかをIF()と組み合わせる

162 :名無しさん@そうだ選挙にいこう:2008/07/16(水) 20:06:30
>>161
イメージはつかめました
ありがとうございました

163 :名無しさん@そうだ選挙にいこう:2008/07/16(水) 20:48:43
>>160
=CHOOSE(A1,1,1,2,"",1,"",2,2,"","","",2,1)

164 :名無しさん@そうだ選挙にいこう:2008/07/16(水) 20:53:43
まちがえた
=CHOOSE(A1,1,1,2,"",1,"",2,2,1,"","",2,1)

165 :名無しさん@そうだ選挙にいこう:2008/07/16(水) 20:56:44
まだ間違えてるよ
「A1に」ではなく「A列に」だからね
そのアプローチはNGだ

166 :名無しさん@そうだ選挙にいこう:2008/07/16(水) 21:00:19
>>159
一言で言うと言ってることがわからん
ファイルをアップしてくれ

167 :名無しさん@そうだ選挙にいこう:2008/07/16(水) 21:02:57
          ____
       / \  /\ キリッ
.     / (ー)  (ー)\
    /   ⌒(__人__)⌒ \
    |      |r┬-|    |     「A1に」ではなく「A列に」だからね
     \     `ー'´   /     そのアプローチはNGだ
    ノ            \
  /´               ヽ
 |    l              \
 ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、.    
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))


          ____
        /_ノ  ヽ、_\
 ミ ミ ミ  o゚((●)) ((●))゚o      ミ ミ ミ
/⌒)⌒)⌒. ::::::⌒(__人__)⌒:::\   /⌒)⌒)⌒)
| / / /     |r┬-|    | (⌒)/ / / //  だっておwwwwwwwwwwwwwwwwwww
| :::::::::::(⌒)    | |  |   /  ゝ  :::::::::::/
|     ノ     | |  |   \  /  )  /
ヽ    /     `ー'´      ヽ /    /     バ
 |    |   l||l 从人 l||l      l||l 从人 l||l  バ   ン
 ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、    ン
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))


168 :157:2008/07/16(水) 21:06:43
>>158
レスありがとうございます。ワークシートの間違いでしたか。。どうもです。
説明が足らなかったようで申し訳ありません。データファイルのアイコンをクリックして、いまの状況となっています。。

169 :名無しさん@そうだ選挙にいこう:2008/07/16(水) 21:07:39
>>167
顔が真っ赤だよ
そんなにモニター睨まないで…

170 :名無しさん@そうだ選挙にいこう:2008/07/16(水) 21:19:43
夏厨、みっけ!!
「いち・ろく・なな」

171 :名無しさん@そうだ選挙にいこう:2008/07/16(水) 21:25:31
このスレの住民のスルー力のなさは異常

172 :名無しさん@そうだ選挙にいこう:2008/07/16(水) 21:25:45
=IF(AND(1<=A1,A1<=13),CHOOSE(A1,1,1,2,"",1,"",2,2,1,"","",2,1),"")

173 :名無しさん@そうだ選挙にいこう:2008/07/16(水) 21:28:16
>>168
関連付けが壊れたかな。
フォルダオプション→ファイルの種類→XLS→元に戻す


174 :名無しさん@そうだ選挙にいこう:2008/07/16(水) 21:31:15
>>171
なんでスルーできないの?

175 :名無しさん@そうだ選挙にいこう:2008/07/16(水) 21:33:21
とスルーできない>>174が申しております

176 :名無しさん@そうだ選挙にいこう:2008/07/16(水) 21:40:28
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 検索 置換 

現在のシートのすべてのセルを対象とし、 「TC1」という文字を含んだセルの色を黄色にするということを実現したいです。
「ATC1」とか「CCTC123」といった TC1を含んだセルです。

177 :名無しさん@そうだ選挙にいこう:2008/07/16(水) 21:41:32
VBEにて Ctrl + j でリストが出てきたと思いますが、最近出てきません。
何か設定が狂ったのでしょうか?

178 :名無しさん@そうだ選挙にいこう:2008/07/16(水) 21:46:58
>>176
条件付き書式で
=ISERR(FIND("TC1",A1))

179 :名無しさん@そうだ選挙にいこう:2008/07/16(水) 21:59:43
×=ISERR(FIND("TC1",A1))
○=NOT(ISERR(FIND("TC1",A1)))

180 :名無しさん@そうだ選挙にいこう:2008/07/16(水) 22:48:51
素でまちがえた
おはずかしい

181 :176:2008/07/16(水) 23:03:42
>>178-179
実際は、複数の条件があるので、VBAで実現したいです。
「TB1」を含むセルは青にするといったような。。。

182 :名無しさん@そうだ選挙にいこう:2008/07/16(水) 23:12:16
>>181
>>122をifで分岐させる

183 :名無しさん@そうだ選挙にいこう:2008/07/16(水) 23:23:59
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 使えません
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 EXCEL 集計

個人毎にシートを作り日報を記録しているのですが、集計用のシートを一つ作り
月別に集計させるにはどのようなすればよいのでしょうか?
シートのレイアウトは下のような感じになってます

シート1 Aさん
日付  作業内容
5/14    ○○
5/20    △△
6/10    △△

シート2 Bさん
6/12    ○○
6/20    □□
7/10    △△

集計用シート
    ○○ △△ □□
5月   1   1   0
6月   1   1   1
7月   0   1   0

184 :名無しさん@そうだ選挙にいこう:2008/07/16(水) 23:56:28
>>183
ピボットテーブル

185 :176:2008/07/16(水) 23:59:30
>>182
ヒントありがとうございます
Sub aaa()
For Each C In Range("A1:E100")
If C Like "*TC1*" Then
C.Characters.Font.Color = vbBlue
End If
Next C
End Sub

みたいな感じで TC1を含んだセルの文字を青にするということができました。
自己解決しそうですが、
あとは、セルの範囲が固定というところが問題でしょうか?

186 :名無しさん@そうだ選挙にいこう:2008/07/17(木) 00:13:20
>>185
セルの色を変えるならこんな感じ

 For Each c In ActiveSheet.UsedRange.Cells
  If InStr(c, "TC1") > 0 Then c.Interior.Color = vbYellow
  If InStr(c, "TB1") > 0 Then c.Interior.Color = vbBlue
 Next

187 :176:2008/07/17(木) 00:29:36
>>186
ありがとうございます
For Each c In ActiveSheet.UsedRange.Cells
の部分が参考になり解決しました。

188 :名無しさん@そうだ選挙にいこう:2008/07/17(木) 00:37:18
A列に150〜200行の文字列
1つのセルに20〜30文字

これをA4縦でできるだけ文字を大きく印刷するように
例えば3列に自動で振り分けるといったようにすることはできるでしょうか?

189 :名無しさん@そうだ選挙にいこう:2008/07/17(木) 00:50:31
>>188
どの程度厳密にやるかによるけど。

セルの幅を紙のサイズに合わせて、フォントを適当に大きくしてから、
書式で「縮小して全体を表示する」ってのじゃだめ?

190 :名無しさん@そうだ選挙にいこう:2008/07/17(木) 03:31:56
>>188の意味を色々考えてたんだが

作った表をB2縦くらいの大きさで印刷したいけど
そんなでっかいプリンターはねぇよってんなら
@データをプリンターのある店に持っていく
Aどうしても自分のプリンターでやりたいなら
「次のページ数に合わせて印刷」→縦3横3とかではどうか


違う意図の質問かなあ・・・
前から思ってたけどこのスレ、謎解きみたいで楽しいよね

191 :名無しさん@そうだ選挙にいこう:2008/07/17(木) 05:36:57
段組したいって意図だと思うよ
謎解き頑張ってね

192 :名無しさん@そうだ選挙にいこう:2008/07/17(木) 15:01:47
【1 OSの種類         】 WindowsXP
【2 Excelのバージョン   】 Excel2002
【5 検索キーワード     】 Excel ドラッグ 1-A アルファベット A

「1-A」を下にドラッグしていったら
「2-A 3-A 〜 8-A」とかになってしまうんですが、
数字は1のままで、うしろのAのとこをBCDEと変えていけませんでしょうか。



193 :192:2008/07/17(木) 15:10:31
すんません。理由はわかりませんができました。

194 :名無しさん@そうだ選挙にいこう:2008/07/17(木) 15:59:51
既に用意してある複数のCSVファイルから一つのワークブック(エクセルファイル)を作成するにはどうすればいいでしょうか?
バージョンは2000です

195 :名無しさん@そうだ選挙にいこう:2008/07/17(木) 16:12:22
エクセルで開いてコピーペーストするのが一番早いと思う
メモ帳で開いてコピーペーストでもいいけど改行などがずれる可能性があるため
あまりおすすめしない

196 :名無しさん@そうだ選挙にいこう:2008/07/17(木) 16:44:21
【1 OSの種類      】 XP、VISTA
【2 Excelのバージョン】 Excel2007
【3 VBAが使えるか  】 否
【4 VBAでの回答の可否】 否

ハイパーリンクでPC内のワードパッドやメモ帳を呼び出そうとすると
「セキュリティに影響を及ぼす可能性のある問題点が検知されました。
この場所は安全でない可能性があります
C:\(ワードパッドやメモ帳の場所)
ハイパーリンクはPCとDATEに被害を与える場合が〜続行しますか?」という
セキュリティに関する通知が毎回出てきます。
この通知を出ないようにする方法はないでしょうか?

197 :名無しさん@そうだ選挙にいこう:2008/07/17(木) 18:50:47
>>196
メッセージを出なくする方法はあるけど、おすすめできない。
ttp://support.microsoft.com/kb/925757/ja

2007では試したことないけど、VBAから外部アプリケーションを起動すれば、たぶん警告は出ないはず。

198 :名無しさん@そうだ選挙にいこう:2008/07/17(木) 18:55:58
>>196
VBAからメモ帳を開けば警告はでないので、マクロ登録するのが安全で確実

Sub メモ帳を起動()
  Shell ("c:\windows\notepad.exe")
End Sub

199 :名無しさん@そうだ選挙にいこう:2008/07/17(木) 19:07:49
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】郵便番号変換ウィザード
会社のパソコンが一切のインターネットプログラムDLを禁止しているので、
郵便番号変換ウィザードを導入してみたいんだけどできない状況です。
そこで、当該郵便番号変換ウィザードの住所から郵便番号への変換精度について知りたいのです。
たとえば住所データとしては都道府県で始まりマンションの番地で終わるものや、
いきなり市内の町名から(「〜町1-4」など)始まるものも考えられるわけですが、
変換可能なのは郵便番号辞書と完全一致のものに限るのか、
前方or後方の部分一致でもOKなのか実際に導入してる方、教えてください。

200 :名無しさん@そうだ選挙にいこう:2008/07/17(木) 19:13:30
>>199
少なくとも都道府県名は省略可能でした。
どこまで変換可能かは、実際のデータで試してみないとわからないと思います。

201 :名無しさん@そうだ選挙にいこう:2008/07/17(木) 19:16:43
>>197
>>198
レスありがとうございました!解決しました ヾ(*´∀`*)ノ

202 :名無しさん@そうだ選挙にいこう:2008/07/17(木) 19:21:54
>>199 自宅のPCで試せばいいじゃない

203 :名無しさん@そうだ選挙にいこう:2008/07/17(木) 19:27:14
>>200
試してもらってありがとう。大体の場面で使えそうですね。
>>202
Excel持ってないので。VBAは会社のPCでコツコツ覚えました。

204 :名無しさん@そうだ選挙にいこう:2008/07/17(木) 19:31:37
【1 OSの種類         .】 WindowsVista
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 Excel 2007 フォーム 削除

質問内容:
WEB上のフォームなどからテキストをコピー&ペーストすると、
付近のフォームの要素(テキストボックス、チェックボックスなど)がそのまま貼りついてしまい、削除できません。
これを削除するにはどのようにすれば良いのでしょうか。

上記の【5】以外のワードでも検索を試し、[excel 2007 削除できない]で同じような症状の方の質問を発見しましたが、回答がない状況です。
Excel2003以前だとデザインモードへの切り替えやツールバーからの操作で解決できるようですが、2007ではそれらに対応する機能が見当たりません。

[ページレイアウト]>[オブジェクトの選択と表示] を選択するとリストが表示され、中には[control n] (nは1からの連番)と
斜体で列挙されています。ここで"目のマーク”をクリックすると
非表示にはできますが完全に削除はできません。

以前からずっと困っており、未だ解決方法がわからないのでご存じでしたら教えてください。
よろしくお願いいたします。

205 :名無しさん@そうだ選挙にいこう:2008/07/17(木) 19:35:47
ペーストするときにテキストを選択してもだめなん?

206 :名無しさん@そうだ選挙にいこう:2008/07/17(木) 19:38:18
>>203
30日使えるExcelの体験版がMSのサイトから無料でダウンロードできる。
VBだけならVisualStudioってのを入れれば無制限で使える。これも無料で公開されてる。
仕事で必要ならExcelの1本ぐらい買っとけ。自分への投資だ。

住所の変換精度はこんな感じ
ttp://aaabbbccc.s6.x-beat.com/upload/src/up18762.png

207 :名無しさん@そうだ選挙にいこう:2008/07/17(木) 19:44:04
>>204
まず「Excelのオプション」で「[開発]タブをリボンに表示する」にチェックを入れる。
次に「開発」タブをクリックして「デザインモード」を選択すると、
チェックボックスなどのWEB要素の変更 (移動や削除など)ができるようになる。

208 :名無しさん@そうだ選挙にいこう:2008/07/17(木) 19:46:04
>>204
メモ帳にでもコピペしてからコピペしてみては?

209 :名無しさん@そうだ選挙にいこう:2008/07/17(木) 20:11:28
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 Excel 20日締

日付のデータを20日締めで月ごとに分けたいのですが、どのような関数を組めばいいのでしょうか?

H19/12/20 → H19/12
H19/12/21 → H20/01
H20/01/01 → H20/01
H20/01/21 → H20/02

結果は年月までわかればいいので文字列でもなんでもかまいません


210 :204:2008/07/17(木) 20:25:26
>>207
その方法で希望の操作が行えるようになりました。
本当に助かりました。ありがとうございました。

>>205,208
どちらの方法も試しておりましたが、作業量が多いため少しでも手間を少なくしたかったのです。
207さんの方法で解決いたしました。ご回答ありがとうございました。

211 :名無しさん@そうだ選挙にいこう:2008/07/17(木) 20:34:06
>>209
「日」が20より大きければ「月」に1を足す

=DATE(YEAR(A1),MONTH(A1)+IF(DAY(A1)>20,1),1)

212 :>209:2008/07/17(木) 20:36:20
A1に日付として
=IF(DAY(A1)<=20,A1,DATE(YEAR(A1),MONTH(A1)+1,1))

213 :名無しさん@そうだ選挙にいこう:2008/07/17(木) 21:19:10
>>206
VBAとVB.NETはまるで別物なんだが
それともVB6以前が使えるVSが公開されてるのか?

214 :名無しさん@そうだ選挙にいこう:2008/07/17(木) 22:10:38
> それともVB6以前が使えるVSが公開されてるのか?
無料公開どころか、もう一般販売すらされてない

しかしC#とか作るくらいなら、現在のVB.NET的な役目をそっちに任せて
VBは多少貧弱だろうと6以前の仕様で続けて欲しかったよな
現状じゃVB6からVB.NETに移行するのもC#に移行するのもハードルは対して変わらないし

215 :名無しさん@そうだ選挙にいこう:2008/07/17(木) 22:47:50
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 エクセル 行 列

仮に8-Fをクリックすると、一番左の8と一番上のFの所が色が変わって位置がわかるんですけど、
これを、例えば1の行とかAの列でも同じように色が変わって位置がわかるようにできないですか?

それか、指定した場所の列と行全部色が変わるとかないでしょうか?

調べ方が悪いのかなかなかでてきませんでした、よろしくお願いします。




216 :名無しさん@そうだ選挙にいこう:2008/07/17(木) 22:54:07
>>215
Ctrlキー押しながらクリック

217 :名無しさん@そうだ選挙にいこう:2008/07/17(木) 22:57:31
>>215
セルの場所を書くときはアルファベットが先ね。そういうルールだから。
8-F → F8

で、質問の内容をエスパーすると、F8をクリックしたらA8とF1の色が変わって欲しいと。
そういう機能はありませんのでVBAで自分で作るしかないです。

218 :名無しさん@そうだ選挙にいこう:2008/07/17(木) 23:06:53
>>215
Aとか1とか書いてあるグレーの所をクリックする。

219 :名無しさん@そうだ選挙にいこう:2008/07/17(木) 23:18:38
【1 OSの種類】WindowsXP
【2 Excelのバージョン】Dxcel2007
【3 VBAは使えるか】いいえ
【4 VBAでの回答の可否】否
【5 検索キーワード】Excel2007、オブジェクト(図形)を印刷(する、できない)、チェックボックスがない(無い)、グラフ内、グラフの中、などの組み合わせ

Excel2007で作ったグラフの中にテキストボックスを作ったのですが、印刷されません。
(グラフの中に作ったので、グラフから外に出ないタイプのオブジェクトになってます)
別のPCに入っているExcel2003でファイルを開いた所、書式設定→プロパティに「オブジェクトを印刷する」のチェックボックスがあり、それにチェックを入れたら印刷できました。
(もとは付いていなかった)
あらためて2007で見てみるのですが、プロパティにどうしても「オブジェクトを印刷する」のチェックボックスが見当たりません。
グラフはシート、オブジェクトの両方で試しましたが、結果は同じでした。

どうしたら良いでしょうか?
やはりXPは諦めてMeに戻したほうが良いでしょうか?

220 :219:2008/07/17(木) 23:22:28
「【2 Excelのバージョン】Dxcel2007」

「【2 Excelのバージョン】Excel2007」
の間違いです…

「DexelやめてExcelにしたら?」と言われたら悲しいです

221 :名無しさん@そうだ選挙にいこう:2008/07/18(金) 00:14:52
>>219
試しにグラフとテキストボックスを作ってみたけど、うちではちゃんと印刷できた。
「オブジェクトを印刷する」の選択肢が出ないのは確認できたが。

たしか、印刷関連の不具合を解消するパッチがあったような気がするんで、
いっぺんOffice Updateしてみ。

あと、XpからMeに変えても何も変わらないよ。
後ろ向きな解決方法としては、Excel2007をExcel2003に変えるってのが正しい選択。

222 :名無しさん@そうだ選挙にいこう:2008/07/18(金) 00:40:56
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 Excel グラフ 32001以上

質問です。 Excelで1系列のデータが32001以上のデータをグラフ化するいい方法あるでしょうか?
詳細は以下の通りです。
グラフの種類: 折れ線グラフ
データ: 1分間隔のデータでを1ヶ月分(60分(1時間)×24時間(1日)×1ヶ月(とりあえず30日間))=43,200 行データ
その他: Accessは環境の都合で使用不可

とりあえず、1分間隔を2分間隔(データを半分)にしてグラフ化するマクロを作成して
取り込む方法は思いついたのですが、何らかの方法で全データ取り込む方法ってありますでしょうか?
分かる方いらっしゃいましたら教えてください。

223 :名無しさん@そうだ選挙にいこう:2008/07/18(金) 00:50:00
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 エクセル 関数 条件

横並びの4つのデータの内容が同一かどうか調べるために、

  =IF(A2=B2=C2=D2,"ok",FALSE)

こういう式を入れたのですが、全部FALSEが返ってきてしまいます。
なんでうまくいかないのでしょうか。
お助けください。


224 :名無しさん@そうだ選挙にいこう:2008/07/18(金) 01:05:24
>>223
=AND(A2=B2,B2=C2,C2=D2)

225 :名無しさん@そうだ選挙にいこう:2008/07/18(金) 01:14:51
>>222
4万ポイントの折れ線グラフを作ったとして、それを忠実に表示したり印刷するのは不可能だと思うんだけど、
そのあたりはちゃんと考えてる?
1目盛りが0.1mm間隔のグラフが印刷できたとして、全長4メートルだよ?

226 :名無しさん@そうだ選挙にいこう:2008/07/18(金) 01:33:24
>>224
ありがとうございます。出来ました。
=の連続は条件式としては使えないものなんでしょうか。

227 :名無しさん@そうだ選挙にいこう:2008/07/18(金) 01:39:05
>>226
基本的に大小や一致、不一致の比較は2つずつしかできません。
たとえば

IF(A2=B2=C2, 以下略

という式を書いた場合、まず「B2=C2」が比較され、その結果としてTRUEという答えが出ます。
次にこれが元の式に代入されて

IF(A2=TRUE, 以下略

という式になるため、A2がTRUEでなければ、この式の結果はFALSEになるというわけです。

228 :名無しさん@そうだ選挙にいこう:2008/07/18(金) 01:49:57
>>227
逆だよ。この場合の計算は左から。

こんな感じ。
ttp://kissho.xii.jp/1/src/1jyou41919.png

229 :名無しさん@そうだ選挙にいこう:2008/07/18(金) 12:50:44
今、会社の年寄りどもが
Excel2008をインストールしろだとか何だとか言い出しているんだけれど
2008ってあるのかどうか誰か教えてくれ。

230 :名無しさん@そうだ選挙にいこう:2008/07/18(金) 12:59:51
>>229
あるが、Mac用

http://www.microsoft.com/japan/mac/products/office2008/system.mspx
> Office 2008 必要システム
オペレーティングシステム 日本語版 Mac OS X 10.4.9 以上

231 :名無しさん@そうだ選挙にいこう:2008/07/18(金) 13:01:01
だよねぇ。
うちWinなんだけど、出てないはずなのに何言ってんだろ。

さんきゅう!!

232 :名無しさん@そうだ選挙にいこう:2008/07/18(金) 13:25:59
2007の間違いだとしてもでもやめとけよ
死ぬぞ


233 :名無しさん@そうだ選挙にいこう:2008/07/18(金) 13:29:30
2007はだめなのか??

234 :名無しさん@そうだ選挙にいこう:2008/07/18(金) 13:31:43
年寄りには向かないかもな
リボンへの対応が厳しそう

235 :名無しさん@そうだ選挙にいこう:2008/07/18(金) 13:33:08
今年が2008だから間違ってんだろうけど

236 :名無しさん@そうだ選挙にいこう:2008/07/18(金) 13:44:47
若者にも向かないよ・・
2003のまま関数とか増やすだけでよかったのに

237 :sage:2008/07/18(金) 13:47:33
今2007使ってるけど慣れれば別に気にならなくなったけど
確かに2003のほうが使いやすかったね。
一見のデザインから「使いやすくなったのか?」と思わせられたけど
やっぱり昔のが良かったなぁ。。。

238 :名無しさん@そうだ選挙にいこう:2008/07/18(金) 13:52:51
リボンの困るところは、よく使う機能がホームタブにあるから、
別のタブを見ているときに一々ホームタブに戻さないといけないところだな

全部クイックアクセスうんたらに登録すればいいって話か

239 :sage:2008/07/18(金) 13:56:01
いきなり2007から使い始めるとなると使いやすいかも知れないけどね。

240 :名無しさん@そうだ選挙にいこう:2008/07/18(金) 14:02:04
他のアプリケーションと大幅に違うという点からして、そういうのはほとんどいないと思う

241 :名無しさん@そうだ選挙にいこう:2008/07/18(金) 14:05:28
2007に旧タイプのメニューバーを追加するソフトって有料なんだっけ?

242 :名無しさん@そうだ選挙にいこう:2008/07/18(金) 14:05:57
あと気にくわないのはタイトルバーが無いところ
タイトルバーに常駐するタイプのランチャを使ってたんだが、
タイトルバーが無いせいで表示されず使い物にならなくなってしまった。

243 :名無しさん@そうだ選挙にいこう:2008/07/18(金) 14:11:10
2003で2007のファイルを扱えるようにするアドインてどうよ?
MSで無料公開されてるけど。
あれなら見た目2003のままパワーアップするんじゃない?そういうもんでもないのかな?

244 :名無しさん@そうだ選挙にいこう:2008/07/18(金) 14:14:03
そういうもんでもないんです

245 :名無しさん@そうだ選挙にいこう:2008/07/18(金) 14:59:21
>>124
=IF(開始時間<=23/24,23/24-開始時間-2/24)で23-0が取れました。
が。
IF(終了時間>=32/24,終了時間-24/24)
IF(終了時間>=32/24,,終了時間-24/24) 
で0-8が取れます。なぜ真と偽を入れ替えねば出ないのかがわかりません。

246 :名無しさん@そうだ選挙にいこう:2008/07/18(金) 16:08:49
>>245
もうちょっと論点を整理して、誰でも理解できる日本語で書いてください

247 :名無しさん@そうだ選挙にいこう:2008/07/18(金) 17:12:04
>>243
しかし、行列数が65536*256を超える部分は表示出来ないし
4つ以上の条件付き書式など、2007で強化された機能は再現されないし…

というわけで、単に2007側で旧形式保存しなくても、互換性のある部分に限っては
扱えるってだけで、全然パワー(機能)はアップしてない

248 :名無しさん@そうだ選挙にいこう:2008/07/18(金) 19:30:35
2003を使っています。
Excelで平方2乗平均を計算するにはどうしたら良いのでしょうか?
手っ取り早い方法を教えて下さい。


249 :名無しさん@そうだ選挙にいこう:2008/07/18(金) 21:55:17
>>248
平方2乗平均の定義はどんなの?

250 :名無しさん@そうだ選挙にいこう:2008/07/18(金) 21:55:27
数学の質問はスレ違い

251 :名無しさん@そうだ選挙にいこう:2008/07/18(金) 22:00:09
>>250
例えば
「Excelで偏差値を求めたいのですがどうしたらできますか?」
という質問はスレ違いか?

252 :名無しさん@そうだ選挙にいこう:2008/07/18(金) 22:15:46
スレ違いだね
偏差値の概念を理解してれば、関数の検索とヘルプだけで情報は事足りる
Excelとは関係ない偏差値の算出概念をここで解説する必要は無し

253 :名無しさん@そうだ選挙にいこう:2008/07/18(金) 22:23:00
概念(笑)

254 :名無しさん@そうだ選挙にいこう:2008/07/18(金) 22:25:43
エクセルで100個の数字を一度に100倍したいのですが。どうしたらいいですか??

255 :名無しさん@そうだ選挙にいこう:2008/07/18(金) 22:28:48
Excelで平均値を求めたいのですがどうしたらできますか?

256 :名無しさん@そうだ選挙にいこう:2008/07/18(金) 22:31:38
>>252
「関数の検索とヘルプだけで情報は事足りる」質問はスレ違い!
こりゃ驚いた

257 :名無しさん@そうだ選挙にいこう:2008/07/18(金) 22:53:06
>>254
定数倍したい目的のセルがA1:A100と仮定。
まずB1に100を入力し、そのセルをコピー。
んでA1:A100を選択しAlt→E→S→M→Enter

258 :名無しさん@そうだ選挙にいこう:2008/07/18(金) 22:55:13
>>252
例えば
「正規分布に従う乱数をExcelで発生させたいのですが、やり方を教えてください。」
という質問もスレ違いかな?


259 :名無しさん@そうだ選挙にいこう:2008/07/18(金) 22:58:30
表計算ソフトの質問スレなんだから計算の話題が出てきて当然だと思うがな。


260 :名無しさん@そうだ選挙にいこう:2008/07/18(金) 23:08:43
>>257 
ありがとうございます。めちゃくちゃ助かりました。

261 :名無しさん@そうだ選挙にいこう:2008/07/19(土) 00:14:55
エクセルで地球の表面積を求めたいのですが、どうしたらいいですか?

262 :名無しさん@そうだ選挙にいこう:2008/07/19(土) 00:25:21
>>261
正確な表面積を計算するのは不可能なので、まずは計算方法(精度や妥協点)を決める必要があります。
この段階ではまだExcelの出番はありません。地学板等で相談してください。

263 :名無しさん@そうだ選挙にいこう:2008/07/19(土) 00:27:38
>>255
AVERAGE

264 :名無しさん@そうだ選挙にいこう:2008/07/19(土) 05:30:49
http://www.nicovideo.jp/watch/sm4000901

265 :名無しさん@そうだ選挙にいこう:2008/07/19(土) 09:57:42
>>261
その質問の仕方はスレ違い、正しくは
「このような方法で地球の表面積をエクセルで求めたいのですがどうしたらいいですか?」
といった具合に、式もしくは計算方法を提示しなさい

266 :名無しさん@そうだ選挙にいこう:2008/07/19(土) 10:22:48
>>259
ばーか
数学板いけよ

267 :名無しさん@そうだ選挙にいこう:2008/07/19(土) 10:48:38
>>265
そうだね。それがいいんじゃないかな。
だから>>248も平方2乗平均の定義を示してからExcelの質問をすれば?

268 :名無しさん@そうだ選挙にいこう:2008/07/19(土) 11:06:46
絶句

269 :名無しさん@そうだ選挙にいこう:2008/07/19(土) 11:24:55
>>268
何に対して?

270 :名無しさん@そうだ選挙にいこう:2008/07/19(土) 11:37:14
http://oshiete1.goo.ne.jp/qa4187951.html

271 :名無しさん@そうだ選挙にいこう:2008/07/19(土) 11:47:30
>>270
そこの回答者は
「平方2乗平均は、各要素を2乗した物の和を要素数で割った物の平方根です。」
と決め付けているが本当にそれでいいのかな。
そこがみんな不安だからここでは回答つかないんじゃないのだろうか。

272 :名無しさん@そうだ選挙にいこう:2008/07/19(土) 11:51:59
っていうかマルチポスト

273 :名無しさん@そうだ選挙にいこう:2008/07/19(土) 11:58:54
良く見つけるなあ。気持悪い。

274 :名無しさん@そうだ選挙にいこう:2008/07/19(土) 11:59:24
>>272
別にそれは気にならない。


275 :名無しさん@そうだ選挙にいこう:2008/07/19(土) 12:01:49
マルチとかテンプレとかスレ違いとかに執着するやつはキモイ。

276 :名無しさん@そうだ選挙にいこう:2008/07/19(土) 12:17:39
もっと、言ッテ

277 :名無しさん@そうだ選挙にいこう:2008/07/19(土) 12:20:55
>>273
http://www.google.co.jp/search?q=%e5%b9%b3%e6%96%b9%ef%bc%92%e4%b9%97%e5%b9%b3%e5%9d%87

278 :名無しさん@そうだ選挙にいこう:2008/07/19(土) 13:09:07
>>227
>>228
ありがとうございました。合点しました。

279 :124:2008/07/19(土) 14:27:28
>>246
前述の通り深夜勤務の時間数を求めようとしています

=IF(開始時間<=23/24,23/24-開始時間-2/24)で
「もし23時から0時までの間勤務していればその時間」が取れました。

今度は「もし0時から8時までの間勤務していればその時間」
IF(終了時間>=32/24,終了時間-24/24) としても取れることもあればエラーのこともあり←これが真ですね
IF(終了時間>=32/24,,終了時間-24/24)としても取れることもあればエラーのこともあり←これが偽ですね

真と偽を入れ替えると出たり出なかったりするのかがわかりません。


280 :名無しさん@そうだ選挙にいこう:2008/07/19(土) 15:22:57
>>275
ガキ

281 :名無しさん@そうだ選挙にいこう:2008/07/19(土) 18:46:55
>>279
Excelでは日付と時刻をまとめて「シリアル値」という連続したデータとして扱うことになっている。
時刻のデータには、表示されていないだけで年月日も情報として含まれている。
エラーが出たデータの書式を変えて、年月日まで表示させてみると違いがわかるかも。

俺の予想では時刻が文字列になってしまっているか、計算した結果がマイナスになっているかどちらか。

282 :名無しさん@そうだ選挙にいこう:2008/07/19(土) 18:49:58
>>279
24時間を超える場合のセルの書式はh:mmじゃなくて[h]:mmだよ。
たぶんマイナスになってるんじゃない?

283 :名無しさん@そうだ選挙にいこう:2008/07/19(土) 23:11:09
こんばんは。VBE初心者のものです。

講義の宿題で7×7の魔方陣をVBEで解いてこいといわれました。
しかしながら自分のスキルでは動にもなりませんでした。

自分はIFやDim等までしか習っていませんがそれで解ける方法があったら
誰か助けてください。



284 :名無しさん@そうだ選挙にいこう:2008/07/19(土) 23:14:51
マルチ乙

285 :どこの課題か知らないけど良問だねこりゃ:2008/07/20(日) 02:00:30
Sub 応用してみた()
Cells.ClearContents
E = 7 '** INPUT 辺の長さ(奇数) **
R = 1 '** INPUT 開始行 **
C = (E - 1) / 2

For I = 1 To E ^ 2
R = R + 1
If I Mod E = 1 Then R = R - 2
C = C + 1
If I Mod E = 1 Then C = C - 1
Cells(R Mod E + 1, C Mod E + 1) = I
Next
End Sub

286 :名無しさん@そうだ選挙にいこう:2008/07/20(日) 07:04:19
すいません、エクセル初心者ですが質問があります
エクセルでグラフを書こうとしてるのですが単位の入ったセル【100m】などをドラックしてグラフを作ろうと思っても
単位が入っているためかうまく作れません。
数値のみならグラフを作れるのですが単位つきのセルを利用してうまくグラフをつくれるほうほうはありますか?

287 :名無しさん@そうだ選挙にいこう:2008/07/20(日) 07:12:20
>>285
左上から右下の斜めの合計がおかしいな

288 :名無しさん@そうだ選挙にいこう:2008/07/20(日) 07:18:04
>>285
ttp://www.ne.jp/asahi/suzuki/hp/houjin3.htm
このとおりにすればいけるみたい
>>286
=substitute(a1,"m",)なんかでmを抜いた列を作ったあとグラフ

それか最初から書式設定でmをつけるのが基本
A1に100、B1にmといれるようにしててもいいけどね

289 :名無しさん@そうだ選挙にいこう:2008/07/20(日) 12:08:47
スレ違いかもしれませんが、
Excel使うのにおすすめのマウスありませんか?
横スクロールの使い勝手のいいものです。

290 :名無しさん@そうだ選挙にいこう:2008/07/20(日) 12:10:26
Sub MAHOUJIN()

E = InputBox("辺の長さは?")
R = E
C = (E - 1) / 2

For I = 1 To E ^ 2
R = R + 1
If I Mod E = 1 Then R = R - 2
C = C + 1
If I Mod E = 1 Then C = C - 1
Cells(R Mod E + 1, C Mod E + 1) = I
Next

End Sub

291 :名無しさん@そうだ選挙にいこう:2008/07/20(日) 13:08:42
奇数専用だね

292 :名無しさん@そうだ選挙にいこう:2008/07/20(日) 14:14:33
>>289
logicoolなら大体外れないでしょ
あとは無線や有線、重さなど人によって違いすぎるのでなんとも
ゲーム用のも悪く無いと思う

293 :名無しさん@そうだ選挙にいこう:2008/07/20(日) 15:02:43
>>289
俺は安いので、
A4tech 使ってる。


294 :名無しさん@そうだ選挙にいこう:2008/07/21(月) 00:42:24
Excel2003を使用しているのですが、下記のグラフを作成したいと思うのですが
やり方がわからないので質問致します


A社 ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
B社               ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
---------------------------------------------------------------
  1970  1975  1980  1985  1990  1995  2000  2005(年)


上記グラフのように、A社は1970年から始めて2008年まで継続しているのに対して
B社は1985年から開始して2008年まで継続しているということを表したいです。
B社のようにグラフ途中の1985などを起点とするにはどのようにすれば良いのでしょうか?


295 :名無しさん@そうだ選挙にいこう:2008/07/21(月) 00:44:28
すみませんグラフがズレました・・・

A社 ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
B社               ■■■■■■■■■■■■■■■■■■■■■
-----------------------------------------------------------------------------------------------------------
  1970  1975  1980  1985  1990  1995  2000  2005(年)

296 :名無しさん@そうだ選挙にいこう:2008/07/21(月) 00:55:17
>>294
youtubeで Gantt Chart で検索してみるんだ。

297 :名無しさん@そうだ選挙にいこう:2008/07/21(月) 01:19:21
>>296
ありがとうございます


色を消すという発想がなかった…
先人頭良すぎ

298 :名無しさん@そうだ選挙にいこう:2008/07/21(月) 15:20:21
XP VAIO VGNE Excel2007

絶対参照について。

セルB4に「B1」と入力しました。ここでF4キーを押すと$マークがつくらしいのですが
セルにカーソルがあっている状態で押してもタブキーを押したようにカーソルが右に
移動してしまいます。どのようにすればマークがつきますか?お願いします

299 :名無しさん@そうだ選挙にいこう:2008/07/21(月) 15:29:34
=B1と入力してからF4

300 :名無しさん@そうだ選挙にいこう:2008/07/21(月) 15:33:30

【1 OSの種類         .】 WindowsXpsp2
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 VALUE



 A B C D E F
1 元金 1,000
2 利率 0,02 0,025 0,03 0,035 0,04
3 年数
4
5
6

複利利息早見表を作成したいのですが、B4に=$B$1*((1+B$2)^$A4-1)
と入力すると#VALUE!と表示されてしまいます。何がいけないのでしょうか
B4の式はB4からF6まで複写します

301 :名無しさん@そうだ選挙にいこう:2008/07/21(月) 15:34:37
>>299
=がなかったんですね・・・・・
無事マークを付けることができました。
ありがとう

302 :名無しさん@そうだ選挙にいこう:2008/07/21(月) 15:52:25
>>300
なんで小数点の記号にカンマつかってんの

303 :名無しさん@そうだ選挙にいこう:2008/07/21(月) 16:34:25
文系の子は整数以外理解できないから、しかたがない

304 :名無しさん@そうだ選挙にいこう:2008/07/21(月) 17:30:30
>>303
なんでお前そんなにガキなの?

305 :名無しさん@そうだ選挙にいこう:2008/07/21(月) 17:41:42
夏だモン

306 :名無しさん@そうだ選挙にいこう:2008/07/21(月) 18:51:05
なぜかフランスではコンマと小数点の使い方が逆なんだよな。
1.234.567,89
みたいに書く。
声に出して読むときは日本人の理系でも小数点のことをコンマって言うし。とくに機械科の人。

307 :名無しさん@そうだ選挙にいこう:2008/07/21(月) 19:02:59
ここは日本だよ
理系にもバカはいる

308 :名無しさん@そうだ選挙にいこう:2008/07/21(月) 20:35:20
町工場(こうば)の人は普通にみんなコンマって言うよ。
0.1mmのことを「コンマ1ミリ」とか。業界用語みたいなもん。
事務系の人は知らない世界だと思うけど。

309 :名無しさん@そうだ選挙にいこう:2008/07/21(月) 20:50:49
大昔、「コンマ1秒の、エクスタシー」なんてのを
宣伝文句にしてる映画がありました

310 :名無しさん@そうだ選挙にいこう:2008/07/21(月) 21:02:31
コンマが小数点って普通に国語辞典にも載ってるな

311 :名無しさん@そうだ選挙にいこう:2008/07/21(月) 21:17:48
ここExcelスレなんだけど

もしかしてロケールをフランスに切り替えるとコンマと小数点が逆になる?

312 :名無しさん@そうだ選挙にいこう:2008/07/21(月) 21:19:14
結局誰も300に答えてない件

313 :名無しさん@そうだ選挙にいこう:2008/07/21(月) 21:21:34
>>312

314 :名無しさん@そうだ選挙にいこう:2008/07/21(月) 21:24:56
A4が空?

315 :名無しさん@そうだ選挙にいこう:2008/07/21(月) 21:25:29
>>302の指摘が正解なんだけど

316 :名無しさん@そうだ選挙にいこう:2008/07/21(月) 22:28:50
指摘されてもフランス人だったら一生わかんないんじゃないの

317 :名無しさん@そうだ選挙にいこう:2008/07/21(月) 22:49:48
じゃあ元金1,000ってのは1ユーロか

318 :名無しさん@そうだ選挙にいこう:2008/07/21(月) 22:55:25
なにいってんのこいつ

319 :名無しさん@そうだ選挙にいこう:2008/07/21(月) 23:14:39
たとえユーロでも複利の計算方法は変わらんだろ

320 :名無しさん@そうだ選挙にいこう:2008/07/21(月) 23:14:53
( ゚,_・・゚)

321 :名無しさん@そうだ選挙にいこう:2008/07/21(月) 23:18:51
>>316
フランス人バカにすんなよコラ

322 :名無しさん@そうだ選挙にいこう:2008/07/21(月) 23:57:47
元金が1.000で利率が0,02ならなんとなくつじつまも合うんだけど、元金も1,000だからなあ…
ユーロの補助単位は2桁だから1ユーロにしてもおかしいし。

323 :名無しさん@そうだ選挙にいこう:2008/07/22(火) 00:21:06
いいからもう寝ろ

324 :名無しさん@そうだ選挙にいこう:2008/07/22(火) 01:06:23
オヤスミ

325 :名無しさん@そうだ選挙にいこう:2008/07/22(火) 01:53:50
こんばんわ。
小数点以下を四捨五入して表示しています。
しかし、このセルを使って他で計算すると当たり前ですが、小数点以下全てを使って
算出されてしまいます。表示ではなくて、完全に小数点以下を四捨五入したい場合は
どうすればいいんでしょうか?

326 :名無しさん@そうだ選挙にいこう:2008/07/22(火) 02:17:50
2003です。

327 :名無しさん@そうだ選挙にいこう:2008/07/22(火) 02:21:40
>326

Round

328 :名無しさん@そうだ選挙にいこう:2008/07/22(火) 02:33:06
>>327
ありがとうございます。

329 :名無しさん@そうだ選挙にいこう:2008/07/22(火) 11:59:20
【1 OSの種類         .】 Windowsxp
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 はい(出来れば関数で解決したいです)
【4 VBAでの回答の可否】 可
【5 検索キーワード     】複数条件 lookip 抽出
シート1
A B C  
1 あ AA
2 あ BB
3 あ CC
1 い DD
2 い EE
3 い FF
上記のような表を作成した際に、「"あ"の"1"ならAAを抽出」「"い"の"1"ならDDを抽出」
というのを作りたいのですが、VLOOKUPでやるとA列の条件でしか探してくれませんでした。
サムプロダクトですと、合計値しか求めてくれないようで詰まってしまいました・・・。
どうかよいアイディアかヒントなどご助言いただけませんでしょうか?
お願い致します。

330 :名無しさん@そうだ選挙にいこう:2008/07/22(火) 12:19:25
なんどもでる質問だけど
D列にあ1、あ2、あ3、い1、い2、い3を入れてE列にC列を再掲すればVLOOKUPが使える。

331 :329:2008/07/22(火) 12:49:51
>330
なるほど。全然思い浮かびませんでした!ありがとうございます。

ちなみに後学の為に、A且つBのような条件を抽出したい場合は
どのように対処したらよろしいのでしょうか?
VLOOKUPでなくても、関数で求めることができるのであれば知っておきたいですので・・・。

332 :名無しさん@そうだ選挙にいこう:2008/07/22(火) 13:12:29
【1 OSの種類         .】 Windowsxp
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 選択 VBA フォーム エクセル
VBAのフォーム にて たとえば CommandButton1 というボタンをクリックすると、シートのセルが選択できる状態になり
マウスでドラッグして複数箇所を選択する。
選択は単列もしくは A2〜A11 と B3 と C4〜C12 といったように 、複数列の場合がある。 
複数列の場合は Ctrl+ドラッグを用い 必ず1列づつ選択する
(各セルには1行しか入力されていない)
選択が終了したら フォーム の CommandButton2 というボタンをクリックする。
すると フォームの TextBox1 というテキストボックスに 選択したセルのテキストが、表示される。
テキストボックスへの表示は、選択した列の順でも A B C といったように名前順でもかまいません。

以上を実現したいと思っています。

333 :名無しさん@そうだ選挙にいこう:2008/07/22(火) 13:19:07
>>332
2000だったらRefEditコントロールってのを調べてみると
それっぽい事が出来るサンプルたくさんあるんじゃないかな?

334 :名無しさん@そうだ選挙にいこう:2008/07/22(火) 13:35:09
>>331
配列数式使えば可能だが、重くなるだけなのでやめた方がいい
こういうことに配列数式使うなんてのは後学にもなんにもならないからな

335 :名無しさん@そうだ選挙にいこう:2008/07/22(火) 14:15:44
>>331
複数条件で検索したいってのはExcelのFAQみたいなもんだな。
いろいろな方法があるけど状況に応じて使い分けるしかない。
ttp://www.geocities.jp/chiquilin_site/data/051029_more_conditions2.html

336 :332:2008/07/22(火) 15:56:03
>>333
ありがとうございます。
RefEditコントロールは選択する部分では、自分が実現したいものそのものでした。
しかし、サンプルをいくつか見ましたがわからない点があり、
1つだけの選択だとできるのですが、複数のセルの場合、選択したセルの値をテキストボックスに表示するということができません。






337 :279:2008/07/22(火) 15:56:12
>>281
>>282
理解しました。
ありがとうございます

そして新たな質問です。
残業の開始時間は取れました
しかし終了時間がよくわかりません

たとえば夜勤の人が8時半や3時半に帰った場合なのですが、
深夜帯は22時から5時としました場合、
開始時間は=IF(出勤<=22/24,,25/24-出勤)で出ます。
終了時間はどう出せばいいのでしょう。

338 :名無しさん@そうだ選挙にいこう:2008/07/22(火) 16:31:49
>>332
選択セルのアドレスを取得するだけなら
Application.InputBoxメソッドのType:=8で出来る

InputBox関数じゃないよ

339 :名無しさん@そうだ選挙にいこう:2008/07/22(火) 17:29:24
生年月日が入力してある表があるのですが
これを元に生まれ月だけ抜き出してグラフを作成する事は可能でしょうか?

また、どんな関数を使ったらいいでしょうか?
宜しくお願いします。

340 :名無しさん@そうだ選挙にいこう:2008/07/22(火) 17:34:15
>>339
month関数で調べてみてください。

341 :名無しさん@そうだ選挙にいこう:2008/07/22(火) 17:36:14
>>337
終了-開始<0の時、終了に24/24を足す

342 :332:2008/07/22(火) 17:42:07
>>338
アドレスではなくて、セルに入っている値です。
たとえば選択した A1に3 A2に5.8 A3に神奈川 B5に5 B6に6.0 C2に6 C3に新潟
だとすると テキストボックスに 「 3  5.8  神奈川  5  6.0  6  新潟」
(できれば1つのセルの値ごとに & vbCrLf & 改行したいです) 

343 :名無しさん@そうだ選挙にいこう:2008/07/22(火) 17:46:55
>>340
ありがとうございます。
調べてみます。

344 :名無しさん@そうだ選挙にいこう:2008/07/22(火) 18:22:03
>>342
Sub aaa1()

Dim c As Range
Dim unko As String
For Each c In Selection
unko = unko & c.Value
Next c
Cells(1, 1) = unko
End Sub

とりあえず選択したセルの文字列連結をA1に出力
後はテキトーに変えておくれ

345 :名無しさん@そうだ選挙にいこう:2008/07/22(火) 19:36:05
若い野球ファンのことは知らんけど、団塊世代なんてのは、大抵
平日は仕事から帰ってきたらビールを飲みながら野球中継、
週末は接待でマージャン、日曜はこれまた接待でゴルフ、休みなら競馬にパチンコ
あとはこれといって趣味と言えるものもない、そういう人が結構多い

一昔前の野球人気なんてものの正体はこれ
みんな会社員、みんな一緒にとりあえず無難な話題
その対象が野球だった

それが徐々に崩れてきたのが現在の状況
もう絶対に元には戻らない


346 :名無しさん@そうだ選挙にいこう:2008/07/22(火) 19:58:46
お前はヨソでも啓蒙してるのかw
もう病気だなw

347 :名無しさん@そうだ選挙にいこう:2008/07/22(火) 20:00:27
啓蒙じゃなくね・・?

348 :名無しさん@そうだ選挙にいこう:2008/07/22(火) 20:11:09
しかも啓蒙の使い方間違ってるし>346
知らないくせに粋がって馬鹿をさらす
まるで団塊だな

349 :名無しさん@そうだ選挙にいこう:2008/07/22(火) 20:25:52
ごめんなさい誤爆しました
が先だろw
ほんとどうしようもないなwww

350 :342:2008/07/22(火) 20:44:15
>>344
Private Sub CommandButton1_Click()

Dim c As Range
Dim unko As String

Range(RefEdit1).Select

For Each c In Selection
unko = unko & c.Value & vbCrLf
Next c

TextBox1.Text = unko

End Sub

これでうまくいきました。ヒントありがとうございます。一応ご報告させていただきます。

351 :名無しさん@そうだ選挙にいこう:2008/07/22(火) 20:50:06
【1 OSの種類         .】 macOS10.5
【2 Excelのバージョン   】 Excel2008
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 officemac2008 オートコンプリート
セルへの入力にオートコンプリートが働いて候補を出してくれるのですが、
今はマウスでカーソルを移動させてその候補の中から選択しています。
それをキーボード操作でやりたいのですが出来るのでしょうか。

352 :名無しさん@そうだ選挙にいこう:2008/07/22(火) 20:56:07
>>342
解決したならいいけどRefEditにはこんな事もあるらしいよ
ttp://www.h3.dion.ne.jp/~sakatsu/Excel_Tips08.htm

参考にどうぞ

353 :名無しさん@そうだ選挙にいこう:2008/07/22(火) 20:57:04
>>351
Macのことはわからんけど下矢印キーで選べない?

354 :338:2008/07/22(火) 21:11:55
>>342
Private Sub CommandButton1_Click()
 Dim C As Range, X As Range
 Dim hoge As String

 On Error Resume Next
 Set C = Application.InputBox(Prompt:="セルを選択してみろ", _
                Title:="選択セルを1セルに書き出す", _
                Type:=8)
 On Error GoTo 0
 
 If C Is Nothing Then
  MsgBox "キャンセルしたよ"
 Else
  For Each X In C
   hoge = hoge & X.Value & vbCrLf
  Next X
 End If
 TextBox1.Text = hoge
End Sub

InputBoxメソッドを使った場合のやり方
アドレスが取れればそれを使ってセル参照も取れるだろ


355 :名無しさん@そうだ選挙にいこう:2008/07/22(火) 21:24:22
>>351
リスト履歴だとAlt+↓で入力履歴がずらっと出る。

356 :342(332):2008/07/22(火) 21:32:26
>>354
なるほど。先ほどは理解力不足で理解できませんでした。
>>352さんの指摘された件もあるのでこちらの方が良いみたいですかね?

ちなみに、

TextBox1.Text = hoge

のデータをテキストファイルにて保存するにはどうしたらよいでしょうか?

357 :名無しさん@そうだ選挙にいこう:2008/07/22(火) 21:49:46
>>356
テキストファイルの作成はこんな感じ

F = FreeFile
Open "C:\aaa.txt" For Output As #F
Print #F, hoge
Close #F

358 :名無しさん@そうだ選挙にいこう:2008/07/22(火) 22:19:38
関数をつかって
もし〜ならば〜を出すってのがやりたいんですけど
このもし〜の部分がひとつのセルではなく隣の列のセル
にも別の条件を加えたうえで二つのセルに対してかつ条件
することもできますか?

359 :名無しさん@そうだ選挙にいこう:2008/07/22(火) 22:23:47
>>358
条件によるだろ?
具体的に言ってみろよ

360 :名無しさん@そうだ選挙にいこう:2008/07/22(火) 22:27:04
A1が1かつB1が2の時に○、違う場合は×と表示
=if(and(A1=1,B1=2),"○","×")

361 :名無しさん@そうだ選挙にいこう:2008/07/22(火) 22:45:54
たとえば下のように英文字と数字の2列のテーブルがあると
すると左の列でAに該当する右側のセルの数字を全部合計したい
場合はどうすればいいですか?

A2
A4
B2
B1
C2

計算結果=6

362 :名無しさん@そうだ選挙にいこう:2008/07/22(火) 22:52:06
>>361
それらがA列にあるとすると
B1に
=IF(LEFT(A1,1)="A",RIGHT(A1,1)*1,"")
それで下にオートフィル、後は合計

363 :名無しさん@そうだ選挙にいこう:2008/07/22(火) 22:55:39
>>362
ありがとうございます
でも、できればCOUNTIF使って計算したいのですが
できませんか?

364 :名無しさん@そうだ選挙にいこう:2008/07/22(火) 23:01:23
xp 2003 VBAの回答依頼です。
sheet1のA2からA5にアルファベットの文字データ(半角文字250)が入っています。
この時、aa aaa aaaa… aaaaaaaaaaaa … とaが2〜30個続いている場合、
この部分を""で置換して削除したいのですが、発想が浮かびません。
できるように、よろしく、お願いします。


365 :351:2008/07/22(火) 23:14:20
レスどうもです
>>353
下矢印キーでは「ことえり」というかな漢字変換ソフトが機能してしまい
たとえば、「お」と入力して「沖縄旅行」と履歴が出ても「尾・緒…」と漢字の
次候補が出てしまいます。

>>355
リスト履歴だと矢印キーで選択、エンターで決定と出来ました。
ただ、履歴がたくさん出過ぎてしまって常時使うにはちょっと。


366 :名無しさん@そうだ選挙にいこう:2008/07/22(火) 23:19:46
>>363
COUNTIFは数を数える(カウントする)関数。
SUMIFを使いなさい。

367 :名無しさん@そうだ選挙にいこう:2008/07/22(火) 23:22:07
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 Excel オートフィルタ 抽出 コピー 失敗

Excelのデータベースで、ある条件をオートフィルタを抽出しています。
その抽出した部分だけのデータおよび書式を全部変更したかったので、
抽出されている部分にコピペで全部貼り付けました。

しかし、オートフィルタを外したら、抽出していなかった部分にもデータおよび書式がコピペされていることがあります。
これを回避する方法はないでしょうか?
また、どういったときにそういうことになるのか、条件や原因を教えてください。

宜しくお願いします。

368 :名無しさん@そうだ選挙にいこう:2008/07/22(火) 23:38:39
>>367
オートフィルタで抽出されたセルだけを選択するのはAlt+; 。それから書式などを変えればいい。

369 :名無しさん@そうだ選挙にいこう:2008/07/22(火) 23:44:13
>>364
Sub mac()
Dim i As Long
For i = 2 To 5
Range("a" & i).Value = Replace(Range("a" & i).Value, "aa", "")
Range("a" & i).Value = Replace(Range("a" & i).Value, "aaa", "")
Range("a" & i).Value = Replace(Range("a" & i).Value, "aaaaa", "")
Range("a" & i).Value = Replace(Range("a" & i).Value, "aaaaaaa", "")
Range("a" & i).Value = Replace(Range("a" & i).Value, "aaaaaaaaaaa", "")
Range("a" & i).Value = Replace(Range("a" & i).Value, "aaaaaaaaaaaaa", "")
Range("a" & i).Value = Replace(Range("a" & i).Value, "aaaaaaaaaaaaaaaaa", "")
Range("a" & i).Value = Replace(Range("a" & i).Value, "aaaaaaaaaaaaaaaaaaa", "")
Range("a" & i).Value = Replace(Range("a" & i).Value, "aaaaaaaaaaaaaaaaaaaaaaa", "")
Range("a" & i).Value = Replace(Range("a" & i).Value, "aaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "")

Next
End Sub

なんで俺のコードはいつもこう汚いんだろう

370 :名無しさん@そうだ選挙にいこう:2008/07/22(火) 23:44:15
>>364
処理したいセルの数も文字列の長さも大したことないので、全置換パターンをずらっと並べても
大した手間ではない

スマートにやるなら正規表現

アドインを使わないなら、aaaをaaに置換というのを28回繰り返して、最後にaaを消す

371 :名無しさん@そうだ選挙にいこう:2008/07/22(火) 23:46:36
>>364
不明な部分があるので確認。
aが1個だけの場合は?31個以上連続した場合は?

たとえば、こういうこと?
a1aa2aaa → a12

372 :367:2008/07/22(火) 23:49:13
>>368
ありがとうございます。
明日会社で試してみます(今適当なデータが手元にないので)

どういうときに、フィルタを掛けて非表示行になっている行にも影響があるかの
条件や原因はわからないでしょうか?

自分が以前、フィルタを掛けて表示行にコピペを掛けたら、非表示行にも影響が及んでいて
ゲゲ!ってなったのですが、今日説明を受けているときに先輩がやったときには非表示行にまで
影響が及んでいませんでした。
もちろん、先輩はAlt+; など使っていません。



373 :名無しさん@そうだ選挙にいこう:2008/07/22(火) 23:50:36
>>372
切り取りだと不可視部分も全て切り取り
コピーだと見えてる部分だけコピー
だったと記憶する。逆かもしれんが

374 :名無しさん@そうだ選挙にいこう:2008/07/23(水) 00:14:47
>>369
単純に置換を繰り返すなら、こういうパターンにした方が効率がいい。ヒントは二進法。

Sub a()
 With Range("A2:A5")
  .Replace What:="aaaaaaaaaaaaaaaaaa", Replacement:="aa"
  .Replace What:="aaaaaaaaaa", Replacement:="aa"
  .Replace What:="aaaaaa", Replacement:="aa"
  .Replace What:="aaaa", Replacement:="aa"
  .Replace What:="aaa", Replacement:="aa"
  .Replace What:="aa", Replacement:=""
 End With
End Sub

375 :367:2008/07/23(水) 00:24:45
>>373
説明がわるくてすみません。

フィルタを掛けた表示部分のデータを他のシート等にコピー&ペーストしたいのではなく、
表示になっている部分自体にデータをペーストしたいのです。

(例) フィルタが掛かった状態(左端の数字は行番号)

1 A
5 A    ←このAをBに置き換えるため
6 A    1行目のAをBに書き換え、それをコピー&ペーストする
10A    (非表示の2、3、4、7、8、9行目はCが入っているとする) 

だけど、フィルタを外すと、非表示の2、3、4、7、8、9行目のデータまでBになっているときがある。
本当は、Cのままでなければならないのに。

376 :名無しさん@そうだ選挙にいこう:2008/07/23(水) 00:25:30
処理時間は増えるけど、ソースの見た目スッキリ

Sub a()
 With Range("A2:A5")
  For i = 1 To 8
   .Replace What:="aaa", Replacement:="aa"
  Next
  .Replace What:="aa", Replacement:=""
 End With
End Sub

377 :367:2008/07/23(水) 00:30:22
自分と似たような疑問を相談してるurlを見つけました。
http://q.hatena.ne.jp/1188424422

結局、この回答者の回答内容が正しいかどうかわかりません。

例えば、「●非表示部分も有効」のところに「ペースト」をあげていますが、
今日先輩がペーストをやっていまいたが、「表示部分にのみ有効になっていました。

378 :361:2008/07/23(水) 00:41:03
たくさんのヒントとコード例、ありがとうございます。
奇数個、偶数個でうまく書くことを考えていましたが、できなかったので、
質問させていただきました。
thanks for all

>>371
aが1個だけの場合は?  残します。
31個以上連続した場合は? 発生しないという与件です。


379 :名無しさん@そうだ選挙にいこう:2008/07/23(水) 10:05:50
>>369
aが3個の時消えなくね?

380 :名無しさん@そうだ選挙にいこう:2008/07/23(水) 10:16:45
>>364
Sub hoge()
  For i = 2 To 5
    DstStr = Cells(i, 1)
    TarStr = ""
    For j = 1 To Len(DstStr)
      If Mid(DstStr, j, 2) = "aa" Then
        For k = j + 1 To Len(DstStr)
          If Mid(DstStr, k, 1) <> "a" Then
            j = k - 1
            Exit For
          End If
        Next k
      Else
        TarStr = TarStr & Mid(DstStr, j, 1)
      End If
    Next j
    Cells(i, 1) = TarStr
  Next i
End Sub

381 :名無しさん@そうだ選挙にいこう:2008/07/23(水) 10:24:22
>>380
うpする前に動作確認ぐらいしようよ。

382 :名無しさん@そうだ選挙にいこう:2008/07/23(水) 10:33:45
正規表現使えると楽だべなそれは
With CreateObject("VBScript.RegExp")
 .Pattern = "aa*a"
 For Each r In Range("A1:A5")
  Set m = .Execute(r.Formula)
  If m.Count > 0 Then r.Value = Replace(r.Value, m.Item(0), "")
 Next
End With

383 :331:2008/07/23(水) 10:34:30
>334.335
ありがとうございます!
サイトがとても判りやすく、参考になりました。
配列はなんとなくわかるのですが、使い方がよくわかりませんが
エクセルならあまり覚えなくてよさそうですね

384 :名無しさん@そうだ選挙にいこう:2008/07/23(水) 10:37:14
>>382
"a+a"でよくね?

385 :名無しさん@そうだ選挙にいこう:2008/07/23(水) 10:39:50
>>384
おー、そっちのがいいね
aa*aは冗長だべな。すまんすまん

386 :名無しさん@そうだ選挙にいこう:2008/07/23(水) 11:03:03
>>382
それだと"aaaZaaaaa"みたいなパターンで後半のaが残る。

Sub regexp2()
 Set E = CreateObject("VBScript.RegExp")
 E.Global = True
 E.Pattern = "a+a"
 For Each r In Range("A2:A5")
  r.Value = E.Replace(r.Value, "")
 Next
End Sub

387 :名無しさん@そうだ選挙にいこう:2008/07/23(水) 13:13:59
記述
△ "aa*a"
△ "a+a"
○ "a{2,}"

解釈
△ aと0個以上のaの連続とa
△ 1個以上のaの連続とa
○ 2個以上のaの連続

処理
△ 「文字 文字 数量子 文字」
△ 「文字 数量子 文字」
○ 「文字 数量子」

388 :名無しさん@そうだ選挙にいこう:2008/07/23(水) 13:17:39
>381
一応動かしたんだけど、最後の…a が残りますね。
確認が不十分でした orz

Sub hoge()
  For Each r In Range("a2:a5")
    r.Value = DelChr(r.Value)
  Next
End Sub

Function DelChr(str As String) As String
  tmpstr = ""
  For i = 1 To Len(str)
    If Mid(str, i, 2) = "aa" Then
      For j = i + 2 To Len(str) + 1
        If Mid(str, j, 1) <> "a" Then
          i = j - 1
          Exit For
        End If
      Next j
    Else
      tmpstr = tmpstr & Mid(str, i, 1)
    End If
  Next i
  DelChr = tmpstr
End Function

389 :名無しさん@そうだ選挙にいこう:2008/07/23(水) 21:20:06
エクセル2000ですが、
VBAのフォームでチェックボックスを20個作ったんですが、
(名前はデフォルトの CheckBox1  〜CheckBox20 です)
それぞれのcaptionを例えば
CheckBox1.caption = hoge(1)
CheckBox2.captiopn = hoge(2)
・・・
といったように配列 hoge の値にしたいのです。
Forでやろうとしましたがうまくいきません。

390 :名無しさん@そうだ選挙にいこう:2008/07/23(水) 21:34:50
>>389
VBAのフォームで配列を使うのはちょっとややこしいのよ。もっと簡単に書ければいいのにね。

For i = 1 To 20
 UserForm1.Controls("CheckBox" & i).Caption = hoge(i)
Next i

391 :389:2008/07/23(水) 21:46:41
うまく動きました。ありがとうございます。

392 :名無しさん@そうだ選挙にいこう:2008/07/23(水) 22:46:32
>>390-391
たびたび配列としてアクセスする必要があるんなら、
自前でオブジェクトの配列を作ってしまうという手もある

Dim CB(20) As Object
For i = 1 To 20
 Set CB(i) = UserForm1.Controls("CheckBox" & i)
Next

For i = 1 To 20
 CB(i).Caption = hoge(i)
Next i

393 :名無しさん@そうだ選挙にいこう:2008/07/24(木) 10:35:28
EXCEL2007です。

図形オブジェクトをグループ化する操作を教えて下さい。

よろしくお願いします。


394 :名無しさん@そうだ選挙にいこう:2008/07/24(木) 12:25:44
>>393
2003だけどctrl押しながら複数クリックしていって→クリックでグループ化
できなかったらまたレスして下さいな


395 :393:2008/07/24(木) 13:54:06
>>394

レスありがとうございます。
ctrl押しながらオブジェクトをクリックして、
右クリックするとメニューが出るのですが、
「グループ化」がグレーになっていて、出来ません。
どうしてなのでしょうか。


396 :名無しさん@そうだ選挙にいこう:2008/07/24(木) 14:03:28
>>395
ctrl押しながら「複数の」図形を一個一個クリックしたあと右クリックだけど、それでも出来ない?


397 :名無しさん@そうだ選挙にいこう:2008/07/24(木) 14:05:09
2007だけど>>394の方法で普通にグループ化できるぜ
新規ブックで試してみてもできない?

398 :395:2008/07/24(木) 14:23:12
>>396,397
レスありがとうございます。新規ブックでも同じです。
「グループ化」メニューが、なぜグレーになってるのでしょうか?
ちなみに、オブジェクトは長方形オブジェクト2つです。

399 :名無しさん@そうだ選挙にいこう:2008/07/24(木) 14:36:23
うちも2007だけど、普通にグループ化できるなあ。
選択した図形にアンカー付いてる?こんな感じで。
ttp://aaabbbccc.s6.x-beat.com/upload/src/up18999.png

400 :399:2008/07/24(木) 14:38:36
間違えた。アンカーじゃなくてハンドルね。

401 :395:2008/07/24(木) 15:45:17
>>399
レスありがとうございます。
図形の選択とハンドルは、同じようになってます。

ただ、右クリックで出るメニューの一番下が、
>>399では[オブジェクトの書式設定]ですが、
私の場合は、[図形の書式設定]になっています。

この辺りが原因のように思うのですが、
どうすれば[オブジェクトの書式設定]表示(たぶん、
その時[グループ化]が選択可になるのでは)に
なるのでしょうか?

よろしくお願いします。




402 :名無しさん@そうだ選挙にいこう:2008/07/24(木) 16:02:19
>>401
メニューの一番下が「図形の書式設定」になるのは、
図形やグループが1個しか選択されてない時だったと思うんだけど。

左の長方形にハンドルが付いてないでしょ。
ttp://aaabbbccc.s6.x-beat.com/upload/src/up19000.png

403 :401:2008/07/24(木) 16:27:49
>>402

レスありがとうございます。
二つの図形にハンドルがついてます。
EXCELの不具合でしょうか?

404 :名無しさん@そうだ選挙にいこう:2008/07/24(木) 17:09:56
>>403
「ページレイアウト」の「オブジェクトの選択と表示」を開いた時、
両方の長方形がちゃんと一覧に並んで出てる?名前の間に区切り線とか入ってない?
ttp://aaabbbccc.s6.x-beat.com/upload/src/up19002.png

405 :403:2008/07/24(木) 17:26:07
>>404
レスありがとうございます。

名前の間に区切り線は、入っていません。

Ctrlを押して選択→右クリックでは、うまくいきません(原因?)が
できる方法が分かりました。

 Ctrlを押して選択→[ページレイアウト](または[書式])
  →[配置]→[グループ化]→[グループ化]

ありがとうございました。

406 :名無しさん@そうだ選挙にいこう:2008/07/24(木) 19:42:18
【1 OSの種類         .】 Windows2000
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】否
【5 検索キーワード     】 条件付き書式 計算式が入力されているセル
【5 検索キーワード     】 条件付き書式 計算式 入力 セル

すいません。検索ワードの通りなんですが、エクセルで計算式が入力されているセルだけ
書式を変える条件付き書式を設定することは可能でしょうか?
ググると、「そんな事するより計算式が入ったセルを一括選択してロックをかけろ」、という答えが多いのですが
計算式を保護したいのではなく、印刷した時に計算式が(数字に)上書き入力されているかどうかを
判別できる様にしたいのです。

407 :名無しさん@そうだ選挙にいこう:2008/07/24(木) 20:19:00
>>406
たぶんVBA使わないと無理

408 :名無しさん@そうだ選挙にいこう:2008/07/24(木) 20:33:17
>>406
ウィンドウオプションで数式にチェックを入れるのはだめ?

409 :名無しさん@そうだ選挙にいこう:2008/07/24(木) 22:22:02
>>408
いや、それは・・・・
数式が入っているかを確認したのではなく
数字を見て、それが計算式の結果表示されたものなのか、直接入力された
ものなのかを判別したいので・・


410 :名無しさん@そうだ選挙にいこう:2008/07/24(木) 22:54:38
【1 OSの種類         .】 Windows2000
【2 Excelのバージョン   】 Excel200
【3 VBAが使えるか    .】 少々
【4 VBAでの回答の可否】 可(むしろVBAで)
【5 検索キーワード     】 条件分岐 IF 値 条件一致


【やりたいこと】
・H列に1〜30の値が入っている行の、V列に50%という値を入れたい
・H列にAA、BBが入っているときは、その行のW列に15%という値を入れたい
・どれも当てはまらない場合はブランク
・最後に、V列・W列両方ともブランクの行を赤で網掛け

if〜thenなど調べて書いてみたりしたのですが、躓きっぱなしですorz
ぐぐっても、ぐぐればぐぐるほどわけわからなかったり、
何故か自分のところでは動かなかったり・・・。
会社からはホスト規制で書き込めないので、次の反応は明日夜になってしまいますが、
ネットチェックは出来る(むしろそうやって調べて今まで作ってきた)ので、宜しくお願いいたします。

411 :名無しさん@そうだ選挙にいこう:2008/07/24(木) 23:14:13
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000、2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可

【やりたいこと】
ページのどこか(できればヘッダー・フッター内)に
a)[シート毎のページ番号]
b)[ブック全体の通しページ番号]
を同時に入力・印刷したいです。
例えばシート1,2にそれぞれ3ページずつ存在するとき、
シート2の2ページ目には「(a)2, (b)5」が表示されます。
(a)、(b)どちらかだけ表示することは簡単なのですが、
同時表示を実現する方法がわかりませんでした。
よろしくお願いいたします。



412 :名無しさん@そうだ選挙にいこう:2008/07/24(木) 23:23:28
>>410
VBAなんか使わなくても
V1=IF(AND(1<=H1,H1<=30),50/100,"")
W1=IF(OR(H1="AA",H1="BB",15/100,"")
書式をパーセントにする。
セルの色は条件付き書式で。

413 :412:2008/07/24(木) 23:28:15
カッコが抜けた
W1=IF(OR(H1="AA",H1="BB"),15%,"")

414 :名無しさん@そうだ選挙にいこう:2008/07/24(木) 23:35:44
>>411
全自動で2種類のページ番号を付けるのは、VBAを使わないと無理。
手動でやるには、シート1を編集したらページ数を確認して、
シート2のヘッダーを書き換えて開始ページ番号を4にする。

415 :名無しさん@そうだ選挙にいこう:2008/07/24(木) 23:41:33
>>410
どうしてもVBAでやりたいんなら

If Range("H1").Value = "AA" Or Range("H1").Value = "BB" Then
 Range("W1").Value = "15%"
Else
 Range("W1").Interior.Color = vbRed
End If

416 :名無しさん@そうだ選挙にいこう:2008/07/24(木) 23:55:34
Sub TEST()
I = 1
Do While Cells(I, 8) <> ""
Select Case Cells(I, 8)
Case 1 To 30
Cells(I, 22) = "50%"
Cells(I, 23) = ""
Case "AA", "BB"
Cells(I, 22) = ""
Cells(I, 23) = "15%"
Case Else
Cells(I, 22) = ""
Cells(I, 23) = ""
End Select
I = I + 1
Loop
For R = 1 To I - 1
For C = 22 To 23
If Cells(R, C) = "" Then
Cells(R, C).Interior.Pattern = xlGray25
Cells(R, C).Interior.PatternColorIndex = 3
End If
Next
Next
End Sub

417 :名無しさん@そうだ選挙にいこう:2008/07/25(金) 00:07:51
>>416
関心するほど無駄に長いプログラムだな。
おまけにバグまで仕込んであるし。

418 :名無しさん@そうだ選挙にいこう:2008/07/25(金) 00:32:06
バグどこ?

419 :名無しさん@そうだ選挙にいこう:2008/07/25(金) 01:00:04
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 excel if 休憩時間

A1:出勤時間
A2:退勤時間
A3:拘束時間
A4:実動時間
としたいのですが、休憩時間を自動計算して実動時間を算出したいのです。
4H勤務で休憩1H。
12H勤務で休憩2H。
とするために、素敵な式はないでしょうか?
よろしくお願いたします。

420 :名無しさん@そうだ選挙にいこう:2008/07/25(金) 01:09:31
>>419
A3=A2-A1
A4=A3-IF(A2-A1>=4,1)-IF(A2-A1>=12,1)

でも本当はそういう時は
A1:出勤時間
B1:退勤時間
C1:拘束時間
D1:実動時間
みたいに横並びにしといた方があとあと便利だよ。

421 :名無しさん@そうだ選挙にいこう:2008/07/25(金) 01:11:49
すまん。時間の計算だってこと忘れてた
A4=A3-IF(A2-A1>=4/24,1/24)-IF(A2-A1>=12/24,1/24)

422 :名無しさん@そうだ選挙にいこう:2008/07/25(金) 01:15:31
12時間勤務って許されてるの?

423 :名無しさん@そうだ選挙にいこう:2008/07/25(金) 02:23:17
もっと簡単にできる
A4=A3-INT((A3+4/24)*3)/24

424 :名無しさん@そうだ選挙にいこう:2008/07/25(金) 02:33:54
>>419
休憩時間の定義がよくわからないんだけど、
拘束が4時間00分〜11時間59分の時に1時間てことでいいの?

425 :名無しさん@そうだ選挙にいこう:2008/07/25(金) 03:35:37
%記号を一度書くと、その欄の値をDELキーで消しても、次に値を入力すると勝手に%が
復活してしまいます。これはどうすればいいですか?行や列ごと消すと消えるのですが、、

426 :410:2008/07/25(金) 06:47:45
出勤前に家から
レスありがとうございます。

>>412さん
 それはわかっているんですが、とある業務を自動化することになり(時間の短縮化)
 VBAでまとめて書くのが一番早い、ということになったのです。
 その作業の前後にも、列挿入、行削除等、タイトル行作成などが入っているのです・・・。

 でもありがとうございました。

>>415さん
 ありがとうございました!
 会社で早速試してみます。 

427 :名無しさん@そうだ選挙にいこう:2008/07/25(金) 06:54:43
>>422
36協定読んで恋
>>425
書式設定が勝手に設定されてしまう
ブック全体を選択(CTRL+A)して、書式設定で数値にでもしておけば回避できなくも無い
それか%付きの数値を入れてしまった場合は、元に戻すを使えば書式設定も解除される

428 :名無しさん@そうだ選挙にいこう:2008/07/25(金) 09:33:04
>>425
そのセルを右クリック、書式設定で「標準」に戻す
日付や時刻を入れた場合も同様に書式が勝手に変わってしまう

429 :名無しさん@そうだ選挙にいこう:2008/07/25(金) 10:20:19
>>406
>>印刷した時に計算式が(数字に)上書き入力されているかどうかを
判別できる様にしたいのです

なぜそうしたいか、を書いた方が
すてきな解決方法があるかもしれません。


430 :名無しさん@そうだ選挙にいこう:2008/07/25(金) 11:03:55
はぁ!?

431 :119:2008/07/25(金) 11:40:45
>>119です。
ご返答いただいた皆さま本当にありがとうございます。
昨日質問して、いくつかお答いただいたのですが、間違いがありました。
重複してしまいすみませんが、よろしくお願いします。

【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 excel if 休憩時間

A1:出勤時間
A2:退勤時間
A3:実動時間
A4:休憩時間

A2-A1-A4=A3としたいのですが、休憩時間を自動計算して実動時間を算出したいのです。
4H勤務で休憩1H。
12H勤務で休憩2H。
(〜3:59勤務は休憩0H・4:00〜11:59勤務は休憩1H・12:00以上の勤務は休憩2H)

こちらの式を作ることはできますか?
よろしくお願いします。

432 :名無しさん@そうだ選挙にいこう:2008/07/25(金) 11:58:26
ifで条件わけしてもいいけど
列や行を分けて休憩その1、休憩その2、その3って感じで出して最後に合計するのが早いし分かりやすい




433 :名無しさん@そうだ選挙にいこう:2008/07/25(金) 12:17:47
勤続年数を、満で出す関数を教えてください。

今は、=NOW()-A1と入っていますが
1か月未満でも、1か月と表示されてしまいます。
よろしくお願いします。

434 :名無しさん@そうだ選挙にいこう:2008/07/25(金) 12:20:16
エクセルを使ってファイナンスを勉強するという本を読んでいるのですが、その中で、
関数の引数を入力させる小さなウィンドウが出てます。これってどうやればでるのでしょうか?
ポップアップは自分の環境(windows Vista,Excel 2007)でも出てます。
どうかよろしくお願いします。


435 :名無しさん@そうだ選挙にいこう:2008/07/25(金) 12:51:25
>>433
始日と終了日との日数差を調べて、指定した単位で表示します    topへ
 デイトディフ
=DATEDIF(開始日,終了日,"単位")
      開始日と終了日との日数差を調べて、指定した単位で表示します
    ”単位” Y:年数  M:月数  D:日数
         YM:年数表示での端数の月数
         YD:         端数の日数
         MD:月数表示での端数の日数
     (注)単位は「 ” 」(二重引用符)でくくります。
ttp://www.eurus.dti.ne.jp/~yoneyama/Excel/kansu/today.htm#datedif
>>434
2003だと
=sum(
まで打ったあとに数式バーの横に「fx」ってのがあるからそれをクリック
2007でもあるかはしらん

436 :名無しさん@そうだ選挙にいこう:2008/07/25(金) 13:39:42
>>431
A4=INT((A2-A1+4/24)*3)/24

437 :片山博文MZ:2008/07/25(金) 13:42:12
メールアドレス収集ソフト maget
http://www.geocities.co.jp/katayama_hirofumi_mz/maget/

438 :名無しさん@そうだ選挙にいこう:2008/07/25(金) 14:12:58
>>434-435
2007でも一緒だよ。数式バーの左にfxって書いてあるから、そこをクリックするとウィンドウが出る。

439 :名無しさん@そうだ選挙にいこう:2008/07/25(金) 14:46:33
>>435
ありがとうございます。
やってみます。

440 :名無しさん@そうだ選挙にいこう:2008/07/25(金) 18:46:50
【1 OSの種類         .】 WindowXP
【2 Excelのバージョン   】 Excel2007

Aボタンを押して色を変えたいのですが、真っ青がないので「その他の色>ユーザー設定」を使って作っています。
が、起動するたびに作らなきゃいけません、色の登録はどうやればいいのでしょうか?
できれば「標準の色」に任意の色を追加したいです。



441 :名無しさん@そうだ選挙にいこう:2008/07/25(金) 19:10:08
>>440
2003だとツール オプション 色で変更を選べばいいんだけど2007はどうだろう

442 :名無しさん@そうだ選挙にいこう:2008/07/25(金) 19:43:02
【1 OSの種類         .】 Windows2000
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 外部データの取り込み

テストで http://www2.uploda.org/uporg1565754.xls.html のデータを作りました
そのデータを違うBOOKから”外部データの取り込み”でデータを引っ張りますと
列の最後のabcabcの部分が取り込めないのです
クエリに追加しているのは"imex=1;"だけです ほかは編集していません
どうしたらいいですか?

443 :名無しさん@そうだ選挙にいこう:2008/07/25(金) 20:40:02
できたけど??

444 :名無しさん@そうだ選挙にいこう:2008/07/25(金) 21:00:55
まじっすか
ぼくのだと http://www.uploda.org/uporg1565903.jpg.html ってなるんですが
どこかいじってるところがあるんですか?

445 :名無しさん@そうだ選挙にいこう:2008/07/25(金) 21:16:04
もしかして レジストリの
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel
の TypeGuessRows の値をいじってますか?
レジストリをいじるのは端末依存になるので避けたいんです

446 :名無しさん@そうだ選挙にいこう:2008/07/25(金) 21:21:22
勘違い。できてなかった。すまぬ。

447 :名無しさん@そうだ選挙にいこう:2008/07/25(金) 21:24:27
>>440
まず空のブックを開きます。そして
ページレイアウト→テーマ→配色→新しい配色パターンの作成 で、よく使う色を登録します。
このときアクセント 1〜6のところに自分の使いたい色を入れます。それ以外の色は変更しない方がいいでしょう。
次に、このブックを名前を付けて保存します。この時、

保存先のフォルダ C:\Program Files\Microsoft Office2007\Office12\XLSTART
ファイルの種類   Excel テンプレート (*.xltx)
ファイル名      book

とします。なお保存先のフォルダ名は環境によって変わる可能性があるので、「Office12」というフォルダ名を
手がかりに検索してみてください。
こうすると、次からExcelを起動した時に、自分で作った色が「テーマの色」の中から一発で選べるようになります。
色の設定を元に戻したいときは、今保存したbook.xltxを消すなり別のフォルダに移動するなりしてください。

もう少し手軽にやるなら、字を青くするマクロを作ってボタン登録しておくという手もあります。

448 :名無しさん@そうだ選挙にいこう:2008/07/26(土) 01:54:34
>>442
「外部データの取り込み」では、ExcelのデータをExcelから読み込むような場合でも「データベースエンジン」を
経由して読み込むようになっています。
Excelのワークシートと違って本来のデータベースというのはレコードとフィールドが厳密に決められているため、
1つの列に文字列と数値データを混ぜることが出来ません。

読み込みたいデータが本来のデータベースではなかった場合、データベースエンジンは先頭から一定の行を
読み込んで、列ごとにデータの形を自動判別するようになっています。
そのため、階段状に数値と文字列と空白が混ざったようなデータは正常に取り込むことが出来ないのです。

まずはここを読んで勉強してみてください。
ttp://www.f3.dion.ne.jp/~element/msaccess/AcTipsExcelLinkDataType.html

449 :名無しさん@そうだ選挙にいこう:2008/07/26(土) 03:42:42
検索しててこんな質問を見付けたんだが、偶然か?
画像のアップロード先も同じだし…
ttp://www.moug.net/faq/viewtopic.php?t=28020

450 :名無しさん@そうだ選挙にいこう:2008/07/26(土) 04:05:02
>>448
そのページは見てたんですけど内容がよくわからなくて。。。
できないってことはわかりました
会社のデータのつくりがこんなもので。。。。。。。

>>449
多分おそらくおんなじ人だよ 本人がゆうんだから 間違いないよ

451 :名無しさん@そうだ選挙にいこう:2008/07/26(土) 09:26:34
エクセル2000を使用しています。
わかる方教えてください。

セルを以下のように設定する。

書式→セル→配置→文字の制御の「折り返して全体表示する」
書式→セル→配置→文字の配置を中央揃え
セルを縦に結合させて、セル幅を、8.38(初期設定)くらいにする。

このセルに
例えば、「ABCDEF     GHIJKL」と、書き込むと、
表示は、
      ABCDEF
      GHIJKL   となると思います。

これを、スペースで間をあけずに、エンターでセルの中の行換えを
する方法を教えてください。

452 :名無しさん@そうだ選挙にいこう:2008/07/26(土) 09:30:07
alt+enter

453 :451です。:2008/07/26(土) 09:42:59
もう一つ質問です。
セルに、「0.110」と記入すると、
表示は、「0.11」 になると思います。
小数点以下を、3桁表示にしたいので、「小数点表示桁上げ」をクリックすると、
右揃えにしているのに、左に数値が、ずれてしまいます(1/4角くらいずれます)。
初期設定では、このようなことは、起こらないようです。
たぶん、自分で設定してしまっていると思います。
どうしたら良いでしょうか。


454 :名無しさん@そうだ選挙にいこう:2008/07/26(土) 10:01:33
>>453
「セルの書式設定/ユーザー定義」が、どうなってるか確認してみな
後はヘルプ見りゃ分るはずだ

455 :名無しさん@そうだ選挙にいこう:2008/07/26(土) 11:59:20
>>450
Excelのデータなら普通にそのまま開けばいいじゃん。
なんでクエリを使うのかわからん。

456 :名無しさん@そうだ選挙にいこう:2008/07/26(土) 14:56:28
>>455
1000〜、2000〜、・・・、・・・
っていういろんな連番があってそれに対する お金1、2、3、4
と条件A B C D E ってあって
でもってまた別の条件O P Q R あって
(この条件が123xyzって6種類くらいあって)
ってな感じの条件が組み合わさったものを
DSUM関数でガッツリ雛形を作っておいて計算させてます
このDSUM関数はSUMと違って直にxlsを指定できないので
クエリを使って別のシートにデータ引っ張ってから DSUMで計算しています

って書いてたらマクロ(VBA)で雛形作ったらいいじゃんって思えてきた

457 :名無しさん@そうだ選挙にいこう:2008/07/26(土) 15:34:46
> このDSUM関数はSUMと違って直にxlsを指定できないので
そのxlsも同時に開いていればできると思うけど、それは嫌なのかな

458 :名無しさん@そうだ選挙にいこう:2008/07/26(土) 15:57:13
>>456
作業シートを何枚か用意しといて、そこにVBAでワークシートを丸っと読み込むのが早い希ガス。
シートをそのまま読むだけなら数行で書けるし、クエリなんか使うより処理スピードも速い。

つーか、今まではどうやって計算してたのよ。少なくとも5月からずっと悩んでるみたいだけど。
まだ作成中なら考え方を変えた方がいいぞ。

あと、複雑な条件で集計したいんなら、ピボットテーブルを使うか、それで間に合わないときは
ちゃんとしたデータベースを作って、それこそクエリで処理した方があとあと楽だぞ。

459 :名無しさん@そうだ選挙にいこう:2008/07/26(土) 16:42:04
>>457
それも考えたんですけれども
複数のxlsを開くとそれだけでテンパっちゃう方がおられるので・・・
やめといたほうがいいと考えました

>>458
いえいえ一応は完成はして便利に使われておりました
(最近この条件xyzも使いたいぞよって上から降って来たもので)

データベースもピボットテーブルもまだまだわからないもので・・・

460 :名無しさん@そうだ選挙にいこう:2008/07/26(土) 17:24:05
>>459
手続き指向は条件が増えたりルールが変わったりすると大変だね。
早くピボットテーブル覚えるといいよ。

461 :名無しさん@そうだ選挙にいこう:2008/07/26(土) 21:24:28
ピボットテーブルがもうちょっと柔軟にデータや項目数の増減に対応してくれればいいのに。

462 :名無しさん@そうだ選挙にいこう:2008/07/27(日) 22:39:53
>>451
Alt+Enter

463 :名無しさん@そうだ選挙にいこう:2008/07/27(日) 22:59:40
【1 OSの種類         .】 Windowsxp
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 excel 桁 合計

1行ごとに3桁の数字を入力してあります。(例:A列1行=123やA列2行=456など)

その3桁を、百の位 + 十の位 + 一の位にし、
和を表示させ、
オートフィル的なもので自動で数百個処理したいのです。

何か簡単なやり方はないでしょうか?よろしくお願いします。

464 :名無しさん@そうだ選挙にいこう:2008/07/27(日) 23:05:54
>>463
B1に
=LEFT(A1,1)+MID(A1,2,1)+MOD(A1,10)
って入れて、Ctrlを押しながらフィルハンドルをダブルクリック

465 :名無しさん@そうだ選挙にいこう:2008/07/27(日) 23:13:24
>>464
ありがとうございます。
left関数とright関数があるのを今知ったところで、真ん中はどうしようと悩んでいたところでした。
ありがとうございました。

466 :名無しさん@そうだ選挙にいこう:2008/07/27(日) 23:21:15
LEFTとRIGHTしか知らなくてもRIGHT(LEFT(A1,2),1)で真ん中の一文字が取れる

467 :名無しさん@そうだ選挙にいこう:2008/07/27(日) 23:24:55
1個だけMODなのがなんか気持ち悪ー

468 :名無しさん@そうだ選挙にいこう:2008/07/28(月) 15:45:35
これはひどい

469 :名無しさん@そうだ選挙にいこう:2008/07/28(月) 15:57:52
わざとじゃないの
こんな方法もあるよーってことで


470 :名無しさん@そうだ選挙にいこう:2008/07/28(月) 21:47:14
こんな方法もあるよーってことならこんなのどうよw

=SUMPRODUCT(VALUE(MID(A1,COLUMN(A1:C1),1)))

471 :名無しさん@そうだ選挙にいこう:2008/07/29(火) 08:04:16
文字列計算じゃなく数値で計算するなら
=SUM(INT(MOD(A1,10^{3,2,1})/10^{2,1,0}))
Ctrl + Shift + Enter

472 :471:2008/07/29(火) 08:22:25
すまん、Ctrl + Shift + Enterじゃねーな。

473 :名無しさん@そうだ選挙にいこう:2008/07/29(火) 13:56:28
OS:XP

エクセルを開いてどこか1つクリックすると
クリックしたところから範囲選択になって
以降、クリックがすべて効かなくなり
閉じることもできなくなるんですが・・・
EscもEnterも効きません

474 :名無しさん@そうだ選挙にいこう:2008/07/29(火) 14:16:03
>>473
理由はわからないけどシフトが押しっぱなしになったような状態なんだな
キーボードを抜き差しすれば戻る場合がある
他の対処法は知らないが、俺はなったら諦めて再起動かけてたよ

475 :名無しさん@そうだ選挙にいこう:2008/07/29(火) 14:25:38
>>474
再起動で直りました!
ありがとうございます。

476 :名無しさん@そうだ選挙にいこう:2008/07/29(火) 15:15:25
夏にはよくあることだよな。
熱で不安定になる。


477 :名無しさん@そうだ選挙にいこう:2008/07/29(火) 15:39:21
夏も冬も、PC,WS,鯖等を置いてる部屋の気温は2,3度しか違わない(21〜24℃)

478 :名無しさん@そうだ選挙にいこう:2008/07/29(火) 15:49:27
じゃあPC自体は何度なんだよって話

479 :475:2008/07/29(火) 17:20:30
マウスorHDDより
どうやらキーボードがおかしいっぽいです
ワイヤレスだからかな?
電池一回抜いて、戻すと直ります

480 :名無しさん@そうだ選挙にいこう:2008/07/29(火) 18:13:20
>>479
新しい電池入れてやれ。
あと、電池入れる場所の内側が茶色や緑に汚れてないかも確認。

481 :名無しさん@そうだ選挙にいこう:2008/07/29(火) 20:46:51
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 多少
【4 VBAでの回答の可否】 可
【5 検索キーワード     】  IF

Sheet1のA1にスイカと入力してあったとして
Sheet2のA1にIF関数でSheet1のA1に入力があったらそのまま
スイカと表示させるようにしてるのですが、

Sheet1のB1に出荷or入荷の項目を作り
出荷ならSheet2のA1にいままで通りスイカと表示させ
入荷ならSheet2のA1は非表示とさせたい場合、どのように式を組めばよいでしょうか?



482 :名無しさん@そうだ選挙にいこう:2008/07/29(火) 20:47:58
>>479
シフトを8秒押しっぱなしにした時の機能じゃない?(シフトロック)

483 :名無しさん@そうだ選挙にいこう:2008/07/29(火) 20:55:03
>>481
ifのネストだと
=IF(Sheet1!B1="出荷",IF(Sheet1!A1="スイカ","スイカ",""),"")
andを使うと
=IF(AND(Sheet1!B1="出荷",Sheet1!A1="スイカ"),"スイカ","")
他にはシート1のC1にスイカと出荷なら1、と表示させてそれが1ならスイカを表示って手もある

484 :名無しさん@そうだ選挙にいこう:2008/07/29(火) 21:02:53
勘違いしてる…

485 :名無しさん@そうだ選挙にいこう:2008/07/29(火) 21:10:24
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 してない
データXにYを足して100を超過したら超過した分(U)をデータZから減算するという数式は作れないでしょうか?
IFじゃ作れない気がして困ってます
よろしくお願いします

486 :481:2008/07/29(火) 21:25:20
ありがとうございます。
>>483
ありがとうございます。
"スイカ"の部分は多種あるのですが
その場合はどのようにすればよいでしょうか?

487 :名無しさん@そうだ選挙にいこう:2008/07/29(火) 21:26:00
品種改良して種無しスイカ作ればいいじゃない

488 :名無しさん@そうだ選挙にいこう:2008/07/29(火) 21:29:28
XYZがA1B1C1として
D1=IF(A1+B1>100,C1-((A1+B1)-100),"")

489 :名無しさん@そうだ選挙にいこう:2008/07/29(火) 21:30:05
>>486
質問小出しにすんじゃねーよボケ

490 :名無しさん@そうだ選挙にいこう:2008/07/29(火) 21:32:44
>>485
エスパー
U1=IF(X1+Y1>100,X1+Y1-100)
=Z1-U1

491 :名無しさん@そうだ選挙にいこう:2008/07/29(火) 21:33:18
>>486
一つ目のifの中身をor

492 :名無しさん@そうだ選挙にいこう:2008/07/29(火) 21:45:21
= Z1 - max(X1 + Y1 - 100, 0)

493 :名無しさん@そうだ選挙にいこう:2008/07/29(火) 21:52:37
>>488-492
ありがとうございました
なんとかなるもんですね
excelすげぇや

494 :名無しさん@そうだ選挙にいこう:2008/07/29(火) 23:38:38
>>486
=IF(AND(Sheet1!B1="出荷",Sheet1!A1<>""),Sheet!A1,"")

495 :名無しさん@そうだ選挙にいこう:2008/07/30(水) 00:04:13
はじめてここきました

http://p.pita.st/?wzwxc0s3

この灰色の枠を知らないうちに付けてしまいました。
取る方法を教えて!

496 :名無しさん@そうだ選挙にいこう:2008/07/30(水) 09:28:12
初めて見た。なんだこれ?

497 :名無しさん@そうだ選挙にいこう:2008/07/30(水) 09:39:59
予測できることはいくつか有るが
この画像だけでは断定出来ないので回答は控えておこう

498 :名無しさん@そうだ選挙にいこう:2008/07/30(水) 12:08:46
すいませんおしえてください。仕事でQ&Aを作成しています。

番号     Q&A     区分
--------------------------
1 Q:ふぉいsgh 障害 ←「障害」のところだけ、上下セル結合
A:bじょふぉぐ  
--------------------------
2
3

こんな感じで作成しています。
区分の「障害」となっているところは上下のセルが結合されています。
そして、区分にはオートフィルタが適用されています。
「障害」となっているところはセルが結合されているので、普通に文字列を記入したのでは、
内部的に上のセルにしか文字列が記述されていません。
オートフィルタを使用したときに、Qしか出なくなってしまいます。

どこかに「障害」と2行分作っておいて、それをコピー
そして結合セルに数式だけ貼り付けた場合、オートフィルタを使用してもQとA両方でてきます。
数式をコピーしてますが、特に数式というわけでなく、内部的に文字列が1行分か2行分かの違いだけだと思ってますが、
それで正しいでしょうか?
また、毎回手作業で、数式だけコピー&ペーストが必要になるので、
もっと効率よく出来る方法があれば教えていただきたいと思います。

499 :名無しさん@そうだ選挙にいこう:2008/07/30(水) 12:12:35
>>498です。
ちょっと、表がくずれてますが、
番号の列には数字

Q&Aの列にはQ:
A:

区分の列には障害←ここは上下セル結合
となってます。

500 :名無しさん@そうだ選挙にいこう:2008/07/30(水) 12:12:35
>>498
QとAを二列にすれば解決


501 :名無しさん@そうだ選挙にいこう:2008/07/30(水) 12:23:37
>>500
うーん確かにQとAの列を別にすれば、区分の列は結合いらなくなるんで
問題なくなるのですが、どうにも見栄えが・・・

502 :名無しさん@そうだ選挙にいこう:2008/07/30(水) 12:39:56
>>498
障害と入れた後、下のセルに移動してCTRL+D
これは一つ上のセルをコピーしてくれる

じゃなきゃ
1行目が見出し、2・3行目に一つ目の質問、4・5行目に二つ目・・と続いてるとすると
c2に
=IF(AND(MOD(ROW(),2)<>0,C1="障害"),"障害","")
と入れて下にオートフィル
そうすれば偶数行に障害と入れるだけで奇数行にも出てくる

でもこの二つより>>500の方が理想
書式設定で折り返しでもなんでもすればいいと思う


503 :名無しさん@そうだ選挙にいこう:2008/07/30(水) 23:14:01
すみません、エクセルでエラーが出たときにシートに「1」と表示させ
それを感知して動画を再生させたいのですが
=if(a1=1,動画再生関数,"")
動画を再生できるような関数はありませんか?

504 :503:2008/07/30(水) 23:14:58
【1 OSの種類         .】 Windows2000
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可・否
【5 検索キーワード     】 動画 再生 エクセル
すみませんこれ忘れました。

505 :名無しさん@そうだ選挙にいこう:2008/07/30(水) 23:25:19
エクセルで空を自由に飛びたいな

506 :名無しさん@そうだ選挙にいこう:2008/07/30(水) 23:37:59
ハイパーリンク関数
それか゜無理ならもうわかんねーす

507 :名無しさん@そうだ選挙にいこう:2008/07/31(木) 00:27:17
>>503
VBAじゃなきゃ無理じゃない?

508 :名無しさん@そうだ選挙にいこう:2008/07/31(木) 01:06:27
>>504
ここ参照
ttp://209.85.175.104/search?q=cache:GIR5ZA3DWYYJ:blogs.wankuma.com/ch3cooh/archive/2008/04/04/131535.aspx

509 :名無しさん@そうだ選挙にいこう:2008/07/31(木) 16:36:08
しょうがないなぁ、のび太くんは

ぴぼーっと てぇーぶーるーー

510 :名無しさん@そうだ選挙にいこう:2008/07/31(木) 18:32:17
プリントの時にファイル名も一緒に
どこかに自動で打ち出すことはできますか?

511 :名無しさん@そうだ選挙にいこう:2008/07/31(木) 19:00:37
>>506-508
ハイパーリンク関数、一回つかってみます。とはいえ
VBAじゃないとやっぱ無理なんだろうなあと・・・はぁ。ありがとうございました。

512 :名無しさん@そうだ選挙にいこう:2008/07/31(木) 20:17:24
【1 OSの種類         .】 Windows Vista
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 ActiveCell FormulaR1C1
結構大きなワークシートを作ったのですが、その中である1個のセル(以下Aとします)をX軸にして、ワークシートのほかのところの
セル(以下Bとします)の値をY軸にしてグラフを作成したいと思ってます。そこで、引数を1つとる関数を作成して、引数の値をAに入れて
Bの結果を返すというものをつくりたいと思ったのですが、以下のようにコーディングしても、結果は#VALUEとかになってしまいます。
どうすればよいですか?どうかよろしくお願いします。
Function func1(rate)
Range("B13").Select 'セルA = B13
ActiveCell.FormulaR1C1 = rate 'ここで引数をセルAに代入して
Range("L15").Select 'セルB = L15
func1 = ActiveCell.FormulaR1C1 'ここでセルBの値を返しているつもり
End Function


513 :名無しさん@そうだ選挙にいこう:2008/07/31(木) 20:30:53
上の質問をした者です。読み返してみて分かりづらい内容だと思ったので、、、
VBの関数で、引数を1つ受け取って、それをあるセルに代入して、それによってほかのいくつかのセルの値が変化するので、
その中の1個のセルの値を返す、という関数はどうやれば作れますか?
上の例だと、B13に引数を入れて、L15の値を返す、という関数です。
何度もすみません。

514 :名無しさん@そうだ選挙にいこう:2008/07/31(木) 21:03:31
ここは日本語でコミュニケーション出来ない方お断りです

515 :名無しさん@そうだ選挙にいこう:2008/07/31(木) 21:05:49
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 excel 偶数日 日付 フィルタ vba etc

A2〜A10セルにyyyy/m/d表記(書式設定を見たわけではない)の日付が入力されていて、
B2〜B10セルに偶数日か奇数日かを判断する為の数値(0か1)を入力しようと思います。
(後でフィルタを実行するため)

sub test()
dim r as integer
for r=2 to 10
 cell(r,2)=format(cell(r,1),"d") mod 2
next
end sub

で上手く動いたように見えますが、「format(cell(r,1),"d") mod 2」で大丈夫でしょうか?
除算時の小数点がどうこうという記述(よく理解できない)もあったので、いまいち自信が持てません。


516 :名無しさん@そうだ選挙にいこう:2008/07/31(木) 21:30:58
>>510
ヘッダまたはフッタに&[ファイル名]

517 :名無しさん@そうだ選挙にいこう:2008/07/31(木) 21:40:28
>>515
計算としては間違ってないけど、
カウンタ変数はInteger型ではなくLong型の方が良い(Integerで足りる範囲でも)
あとcellではなくcellsだ
ついでにデフォルトプロパティは省略しない方が良い cells(r,1).value cells(r,2).value
最後にformatよりdayの方がスマートかも day(cells(r, 1).value) mod 2

以上

518 :名無しさん@そうだ選挙にいこう:2008/07/31(木) 21:47:28
>>512
Functionの中から別のセルの中身を書き換えることはできない。
なんでかというと、その関数を1つのシートの中で2回以上使うとセルを書き換える処理が衝突するから。
だからエラーを出すようになっている。
1回しか使わないつもりなら、普通に数式を書け。

519 :名無しさん@そうだ選挙にいこう:2008/07/31(木) 21:51:24
>>515
VBA使わなくてもB2セルに=MOD(DAY(A2),2)って入れるだけで同じことができるよ

520 :515:2008/07/31(木) 22:33:23
>>517
カウンタはlongの方がいいんですか、知りませんでした。
cellsは間違えちゃいました。
他の二点に付いてもありがとうございました。

>>519
そうなんですが、他の処理との兼ね合いでVBAの方が都合が良かったんです。
はしょっちゃってすみません。

521 :名無しさん@そうだ選挙にいこう:2008/07/31(木) 22:43:25
>>518
ありがとうございます。でも、別のセルに値を代入しないと計算が始まらないんです。
B13というセルに値を入力すると、結構沢山のセルの数値が変更されて
その最終結果がL15のセルに出てくるのですが、このB13に色々な値を入れて、それぞれのL15の
値とでグラフにしたいと思ってます。
P1〜P200にB13に代入したい値の列があるのですが、それぞれの場合の結果をQ1-Q200に入れたいです。
シナリオを使おうかとも思ったのですが、変更するのは値1個だけなので、適当じゃないかと。
手動でやってみましたが、50分くらいかかりそうなので、やめました。
どうかいい方法があったら教えてください。お願いします。

522 :名無しさん@そうだ選挙にいこう:2008/07/31(木) 23:35:34
>>521
P1をB13に入れて計算結果(L15?)をQ1に入れる
P2をB13に入れて計算結果をQ2に入れる
P2をB13に入れて計算結果をQ3に入れる

みたいな作業を繰り返したいってこと?
だとしたら、本来ならQ列に=func1(P1)みたいに書けるように関数を作っとくもんだけど、
それができないならVBAでループさせるしかないと思う。

523 :名無しさん@そうだ選挙にいこう:2008/07/31(木) 23:52:54
>>521
こんな感じ

Sub Macro1()
 For r = 1 To 200
  Range("B13").Value = Range("P" & r).Value
  Calculate
  Range("Q" & r).Value = Range("L15").Value
 Next
End Sub

524 :名無しさん@そうだ選挙にいこう:2008/08/01(金) 09:47:11
すみません初歩的な質問かもしれませんが、助けてください。

Excel2007(SP1)で、数字のセルを指定して
通貨表示に変更しても全く変化がありません。
どういった原因が考えられるでしょうか??

Excel2003以前ならこういうことはなかったのですが・・・。

525 :名無しさん@そうだ選挙にいこう:2008/08/01(金) 09:50:56
524です。
すみません、自己解決しました。
数列の前に半角スペースが入っていました。
Webからのコピペで勝手に入ったみたいです。失礼しました。

526 :名無しさん@そうだ選挙にいこう:2008/08/01(金) 11:03:22
2000には数式バーに=があって、押すと数式の計算結果が表示されたんだけど
2003には=がないんです。どうすれば計算結果が得られますか?

527 :1/2:2008/08/01(金) 11:07:15
【1 OSの種類         .】 WindowsXPPro
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 Excel VBA オートシェイプ 速度

大量のオートシェイプを素早く描く方法について質問です。
(当然ですが、Application.ScreenUpdating=Falseを指定しています)

VBAを用いて、同一のオートシェイプを大量に描くプロシージャを作成しています。
1、Activesheet.Shapes.AddShapeメソッドを使用して追加する。
2、最初に1つAddShapeメソッドを使用して作成したあと、Shape.Dupplicateメソッドを
  使用して複製し、位置などを変更する
という2つの方法を試しました。
ところが、どうやら同一シート(orブック?)上に存在するオートシェイプの数に比例して
AddShapeメソッド及びDupplicateメソッドが重くなっていくように思われます。

(続く)



528 :名無しさん@そうだ選挙にいこう:2008/08/01(金) 11:07:44
>>526
これ試してみ
ttp://www.relief.jp/itnote/archives/000595.php

529 :2/2:2008/08/01(金) 11:08:11
(続き)

具体的には、オートシェイプが一切ないシートに1000個追加するときにN秒かかったと
しますと、
既に1000個のオートシェイプが存在するシートに1000個追加するとき:2N秒
既に5000個のオートシェイプが存在するシートに1000個追加するとき:5N秒
の時間がかかっているように見えます。
その影響で、大量のオートシェイプを描画しようとしたとき、描こうとするオートシェイプの
量の2乗に比例して処理時間が増えていってしまうようです。

動作が遅くなる原因は、新たなオートシェイプを追加する際、Shapesコレクションの末尾
(次のオートシェイプを追加する場所)を検索するために、Shapesコレクションを先頭から
シーケンシャルに検索しているのではないか?と思い、
1、Application.Shapesに対してWithステートメントを使用する
2、Application.Shapesをオブジェクト変数に代入してアクセスする
なども試してみましたが、時間計算量のオーダーを減らすことが出来ませんでした。

描画量が多くなるにつれて実行時間がかかるのは当然であるため、やむを得ないと
考えているのですが、何とか時間計算量をO(n^2)からO(n)に落とせないものかと悩んでおります。

どなたか解決法or解決案などありましたら、よろしくお願いします。

530 :名無しさん@そうだ選挙にいこう:2008/08/01(金) 11:12:24
>>529
まず>>134にある、余分な処理を止めて高速化するコードを追加してみ。
オートシェイプの追加は、先にオブジェクトだけ配列で作っておいて、
あとからプロパティをいじるようにしてみたらどうかな。

531 :名無しさん@そうだ選挙にいこう:2008/08/01(金) 11:15:22
メモリ上で作成して一気に貼れ
O(n)になる上にO自体も小さくなる

532 :名無しさん@そうだ選挙にいこう:2008/08/01(金) 11:23:35
>>529
この場合withは人間がプログラムを書く手間を減らすためのもので、実際の処理が減るわけじゃないから。

533 :名無しさん@そうだ選挙にいこう:2008/08/01(金) 11:24:56
>>528
すばやいお返事ありがとう。
サイト見たんだけど、やりたいことがちょっと違うみたい。


要はセルに式を残しておきたいんです。たとえば 6*3
で、その計算結果18を手間をかけないで知りたいんですけど。

534 :名無しさん@そうだ選挙にいこう:2008/08/01(金) 11:58:57
>>533
それだと古いExcelを使い続けるしかないね。
今のバージョンだと多少なりとも手間をかけないと同じことは出来ない。

535 :名無しさん@そうだ選挙にいこう:2008/08/01(金) 12:00:25
素早い回答ありがとうございます。

>>530
>>134のコードを追加してみましたが、速度は殆ど変化しませんでした。
(ピボットテーブルや計算式等はシート内で使用していません。)

>>532
そうなのですか…
withステートメントを使用したほうが、実行時に毎回親オブジェクトから
メンバを辿り直さずに済むから(少しだけ)高速になる、と思っていました…

>>531
なるほど…。確かにそれが出来ればO(n)で素早く出来そうです。
自分はC言語の知識は十分あるため、メモリ&ポインタについての知識は
あるつもりなのですが、VBAでどのようなAPI・関数を使えばよいのか
についてがよくわかりません…
「VBA メモリ 操作」辺りのキーワードで検索してみましたが、Win32APIの
関数を使うのかな?くらいしかよく分かりませんでした。
大変恐縮ですが、もしよろしければVBAで直接メモリ操作を行う上で
参考になる資料等をお教え願えませんでしょうか?

また、作成したメモリデータを「貼る」上で、「どこに」「どうやって」貼れば
よいか、ということも合わせてご教授願えれば幸いです。
(MSDN見るしかない…とかでしょうか…?)

536 :名無しさん@そうだ選挙にいこう:2008/08/01(金) 14:03:38
すみません、質問させて下さい。

ABC.xls(Excel2000)というファイルでピボットテーブルを作成しようと思い
ウィザードに従って進めていくと
範囲指定後に下記の
"ピボットテーブルの集計元ファイル'ABC.xls'を開くことができません。"
というメッセージが出てしまいます。
原因などご教示いただければと思います。
よろしくお願いします。


537 :名無しさん@そうだ選挙にいこう:2008/08/01(金) 16:04:29
質問の趣旨が違いますが 

表計算ソフトの将来的な可能性についてどう思いますか?



538 :名無しさん@そうだ選挙にいこう:2008/08/01(金) 16:21:28
>>536
指定した範囲のどこかに、ABC.xlsというファイル名の書いてあるセルがある、
テーブルの一部を範囲指定して名前が付けてある、
ピボットテーブルを作ってからABC.xlsを別のフォルダにコピーや移動する、
などの操作でそのエラーが出る場合がある。

539 :名無しさん@そうだ選挙にいこう:2008/08/01(金) 16:33:10
>>537
携帯電話がどんどん便利になっているので、デスクを占領するような大きなパソコンは
いずれ家庭内からは姿を消すだろうという予測があります。
オフィスやマニアだけの物になるわけです。
そうなると、一般人や素人には縁のない物になるため、実務に無関係な「親切すぎる機能」
「見栄えの良い外観」などは開発コストもかかるので、真っ先に削られていくんじゃないでしょうか。

もう少し近い将来の展望を書くと、ブラウザと完全に統合されてシームレスに使えるようになるでしょう。

540 :名無しさん@そうだ選挙にいこう:2008/08/01(金) 16:54:37
>538
教えたいただいた内容に該当する点がありませんでしたため
該当するワークシートを新規ブックにコピーしてみたところ
全く問題なく作業が出来ました。
何かすっきりしないのですが、とりあえずこのまま進めてみます。
ありがとうございました。

541 :名無しさん@そうだ選挙にいこう:2008/08/01(金) 18:05:48
>>539
お答えいただきありがとうございます。

興味b買い考えでした


542 :名無しさん@そうだ選挙にいこう:2008/08/01(金) 19:50:03
>>539
真逆の予測もあるね
この先携帯電話の機能がどんどん削られてコストも安く料金も安い携帯電話にってーの
表計算ソフトは2007で一度スリム化を目指すべきだったと思うんだがねぇ

543 :名無しさん@そうだ選挙にいこう:2008/08/01(金) 22:44:25
よく外国人の名前を打ち込むので「・」をよく使うのですが、
ふとした拍子に「・」が打てなくなります。
打とうとしても「/」になってしまいます。
再起動すると直るのですが、原因がよく分かりません。
誰か教えてください。

544 :名無しさん@そうだ選挙にいこう:2008/08/01(金) 23:07:33
半角/全角キーを押す

545 :名無しさん@そうだ選挙にいこう:2008/08/02(土) 00:25:05
エクセルをとてもよく使う仕事をしています。
液晶モニタを24インチワイドWUXGAに買い換えたいのですが、
表示範囲が広がってもパネルはTNでも堪えられますか?
端っこの色が歪んだりすると使いにくそうなのは想像できるものの
VAパネルのモニタは高い、、、、、
ご利用の方のいたら使用感など教えてください

546 :名無しさん@そうだ選挙にいこう:2008/08/02(土) 00:28:47
>>543
英数キーを押す
カタカナひらがなキーを押す

マシンによって違うので色々押してみる

547 :名無しさん@そうだ選挙にいこう:2008/08/02(土) 00:29:28
>>545
慣れだね
色が変でも画面は広い方が使いやすいのは間違いない

548 :名無しさん@そうだ選挙にいこう:2008/08/02(土) 06:56:58
>>545
目が疲れにくい・目に優しい液晶モニタ Part34
ttp://pc11.2ch.net/test/read.cgi/hard/1216647317/
おすすめ

549 :名無しさん@そうだ選挙にいこう:2008/08/02(土) 11:08:12
みなさん、こんな経験したことありますか?何が原因か
分かる人いますか?

エクセル作成の一つのファイルを電子メールで受け取って開いたんですけど、
50シートのうち、3シート以外は、空白になってたんです

マイクロソフトに聞いても「聞いたことがない」って言うんです

550 :名無しさん@そうだ選挙にいこう:2008/08/02(土) 11:25:20
>>549
送信前の元ファイルと受信後のファイルサイズを教えてください。
圧縮しましたか?したならその形式を教えてください。

551 :名無しさん@そうだ選挙にいこう:2008/08/02(土) 11:29:22
>>549
やろうとすればいくらでも出来るけど?

552 :名無しさん@そうだ選挙にいこう:2008/08/02(土) 12:48:15
>>549
そのファイルをアップロードしてほしい

553 :名無しさん@そうだ選挙にいこう:2008/08/02(土) 12:57:27
>550

圧縮していないんです。ファイルは一つです。データはテキスト(105kb)
です。A4程度の大きさのものが、50枚(Sheet)あるという感じです。

送信元では異常は無かったんです。受け取って開いたら、
4〜50Sheetはまったくの空です。

送り返したら、送信元でも異常が確認されたそうです。

554 :名無しさん@そうだ選挙にいこう:2008/08/02(土) 13:01:50
こんなとこでぐだぐだする前に圧縮して送信するとか、どっかのサイトにFTPでうpするとか
すればいいのに

555 :名無しさん@そうだ選挙にいこう:2008/08/02(土) 15:04:39
>送信元では異常は無かったんです。

それは送信済メールに添付されたファイルを
あなたが開いて確認したのですか?

556 :名無しさん@そうだ選挙にいこう:2008/08/02(土) 19:53:20
>555

送信元の人が、自分が送信したファイルを開いて確認したのです。

557 :名無しさん@そうだ選挙にいこう:2008/08/02(土) 22:12:03
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 Googleやヘルプでの検索キーワード
どなたか教えて下さい。
あるセルの値を変えるとある表を参照し、それに連動して数値が変わるようにする関数を教えてください。
vlookupに似た感じだと思うんですが。

あるセルの1を2に変えると、10が20に 30を50にしたい。
 名前、重さ、値段
1、酒、10、30
2、塩、20 50
3、酢、30 100

558 :名無しさん@そうだ選挙にいこう:2008/08/02(土) 22:22:21
=if(a1=2,20,10)
こんな事をする意味がわからん。

なぜそうしたいのか言えば違う答えが出るかもな

559 :名無しさん@そうだ選挙にいこう:2008/08/02(土) 22:31:51
vlookupでいいじゃん。だめな理由を書け

560 :名無しさん@そうだ選挙にいこう:2008/08/02(土) 22:45:05
酒は重さ20、値段50になるけど
酢は重さ50、値段は100のままでいいの?

なにをしたいのだろう??

561 :557:2008/08/02(土) 22:54:52
みなさん返答ありがとうごさいます。
*1の値を2に変えると他が下のように変わるようにしたいのです。
表1
番号、名前、重さ、値段
 1   酒   10、  30
 2   塩   20   50
 3   酢   30  100
------------------
番号 *1 名前 酒

重さ 10

値段30
-----------
番号 2 名前 塩

重さ 20

値段50

562 :名無しさん@そうだ選挙にいこう:2008/08/02(土) 23:03:39
【1 OSの種類     .】WindowsXP
【2 Excelのバージョン】Excel2003
【3 VBAが使えるか  .】いいえ
【4 VBAでの回答の可否】否
【5 検索キーワード 】dcounta

日付 可否
2006/8/1 ○
2007/5/2 ×
2007/6/15 ○
2008/3/18 ×
2008/8/22 ○

上記のような表で下記のような条件を満たす行数を求めたいです。
2006/6/1〜2006/12/31の間で可否が「○」の行
2007/1/1〜2007/5/31の間で可否「○」の行

表の日数は飛び飛びで、かなりの行にわたっています。
また、条件となる日数範囲は半年おきという規則性があります。
dcountaで条件表を大量に作る方法しか思いつかなかった
のですが、他に良い方法あるでしょうか?

563 :名無しさん@そうだ選挙にいこう:2008/08/02(土) 23:13:39
作業列をつくって条件を満たせば1、そうでなければ0を返す式をつくる

564 :名無しさん@そうだ選挙にいこう:2008/08/02(土) 23:37:49
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 #N/A 個数

C列にあらかじめ検索でVLOOK関数が入っております。
別の列に入力すると代入されるのですが、デフォルトでは#N/Aとなっております、この#N/Aの個数を最終的にチェックできる事をしたいのですが・・・
業務で使用してるんですが入力漏れがあってすごい怒られてます・・・

多いときには6000行とか超えてしまうんでマウスホイールで目視チェックしてるんですが歯抜けみたいに#N/Aがあると実際漏れてしまいます。
せめて個数をカウントできればなと・・・
※入力業務で使用している為 行数は日々変動しています。
COUNTIF(C1:C5,#N/A) 見たいな感じでいけるかな・・と思ったんですが行数が固定じゃなくて・・・


565 :名無しさん@そうだ選挙にいこう:2008/08/02(土) 23:41:28
ISNA テストの対象がエラー値 #N/A (使用する値がない) を参照するとき TRUE を返します。

566 :562:2008/08/03(日) 00:14:12
>>563
ありがとうございます。
ifとandを使って各行の判別をするところまではわかるのですが、
それを条件である年月日範囲別にカウントする方法がわかりません・・・。



567 :名無しさん@そうだ選挙にいこう:2008/08/03(日) 00:46:06
>>561
=VLOOKUP(*1のセル番号,表の範囲,列番号(名前なら2,重さなら3),FALSE)
番号が1からの連番で歯抜けがなく、行数に変更がないなら事前に
表の範囲を選択してから、Alt I N C (挿入→名前→名前の作成)で、
上端行 を選択して、各列に名前を設定してから、
=index(名前,*1のセル番号,1)
でもOK

568 :名無しさん@そうだ選挙にいこう:2008/08/03(日) 00:57:54
>>566
作業列1列でやろうと思ってるの?条件ごとに複数の列に分ければいいじゃない

569 :名無しさん@そうだ選挙にいこう:2008/08/03(日) 01:04:59
つまり C1に範囲の開始日、D1に範囲の終了日があるとして
C2=IF(A2>=C$1,1,0) 以下下へコピー
D2=IF(A2<=D$1,1,0) 以下下へコピー
E2=IF(C2+D2+(B2="○")=3,1,0) 以下下へコピー

E列の合計が求める値になるはず。C〜E列は1列にまとめることも可能

570 :名無しさん@そうだ選挙にいこう:2008/08/03(日) 01:05:00
>>562
=SUMPRODUCT((日付範囲>=DATEVALUE(開始日))*(日付範囲<=DATEVALUE(終了日))*(○×範囲="○"))
でできますが、
作業列に
=if(○×セル<>"○","",YEAR(日付)&IF(MONTH(日付)<=6,"上期","下期"))
としといてcountifでもOK
○×チェックはせずにピボットテーブル使ったほうがいい場合もあります。


571 :名無しさん@そうだ選挙にいこう:2008/08/03(日) 01:13:31
=COUNTIF(INDIRECT("C1:C"&COUNTA(C:C)),#N/A)
あるいは
=COUNTIF(OFFSET(C1,0,0,COUNTA(C:C),1),#N/A)
で可変範囲対応

でも条件見る限り、オートフィルタかけたほうがよさそう

572 :名無しさん@そうだ選挙にいこう:2008/08/03(日) 01:14:16
>>567
ありがとうございます。
うまくいきました。

573 :570:2008/08/03(日) 01:19:17
間違えた、開始日とかはシリアル値になってると思われるので、Datevalueは不要だ

=SUMPRODUCT((日付範囲>=開始日)*(日付範囲<=終了日)*(○×範囲="○"))

四則演算では
 TRUE は 1 として
 FALSEは 0 として
計算されるということを理解していると
意外と応用が効きます。

574 :名無しさん@そうだ選挙にいこう:2008/08/03(日) 01:23:06
>>572
お役に立てて何より

余力があるなら、
INDEX関数とMATCH関数も覚えておくことをお勧めします。
この2つの組み合わせで、汎用性の高いVLOOKUPみたいな働きができます。

575 :564:2008/08/03(日) 02:28:44
>>571
たぶん私への回答と思います。
ためさせてもらいましたが、完璧でした。

エクセルの神様 遅くなりましたがありがとうございました

576 :562:2008/08/03(日) 09:10:03
>>569
ありがとうございます。条件範囲ごとに列を作る必要があるのですね。
E2=IF(C2+D2+(B2="○")=3,1,0)の(B2="○")の使い方は初めて知りました。
これはdcountaよりもわかりやすく良さそうです。

>>570
ありがとうございます。
sumproductはこんな風に使えるとは知りませんでした。
すごいスマートで気に入りました。

どちらも思いつかなかった上に、どちらもdcountaよりも管理面で
便利そうなので大変参考になりました!

577 :名無しさん@そうだ選挙にいこう:2008/08/03(日) 09:56:49
【1 OSの種類         .】 WindowsXP professional
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 excel データ 処理


以下のようなデータを処理したいのですが、excel初心者のため、何から手をつければよいのかわかりません。
宜しくお願い致します。

ID 使用物質 使用量 その他 日時
1 A 100ml **** 2000/01/01
1 B 50ml **** 2000/01/01
1 C 50ml **** 2000/01/01
2 A 50ml **** 2000/01/01
2 B 50ml **** 2000/01/01
2 D 50ml **** 2000/01/01
2 E 50ml **** 2000/01/01
3 B 50ml **** 2000/01/01
3 C 50ml **** 2000/01/01
3 D 50ml **** 2000/01/01
4 A 50ml **** 2000/01/02


のような一年分のデータがあります。

使用物質の組み合わせは4種類程度
ABC,ABDE,BCD,ABCE等。

578 :名無しさん@そうだ選挙にいこう:2008/08/03(日) 09:59:28


これから
2000年1月 ABC ○件
ABDE ○件
BCD ○件
ABCE ○件


2000年2月 ABC ○件
ABDE ○件
BCD ○件
ABCE ○件

っていうデータをつくりたいのですが、色々調べてみてもこのような表記の元データから
上のようなデータに変換しているページがみつかりません。
ご教授宜しくお願いします。

579 :名無しさん@そうだ選挙にいこう:2008/08/03(日) 10:05:36
>>576
570みたいなくそ重い式なんか使わない方がいい。
すでに出てるがピボットか作業列を使うべき。

580 :名無しさん@そうだ選挙にいこう:2008/08/03(日) 10:08:06
>>577
件数の数え方が不明だから無理

581 :名無しさん@そうだ選挙にいこう:2008/08/03(日) 10:10:56
>>577
作業列に年月だけ抽出する式をいれてピボットテーブル

582 :名無しさん@そうだ選挙にいこう:2008/08/03(日) 10:15:08
>>580
件数の数え方はID 1種類につき1件です。

>>581
ちょっとググってやってみます。

お二人ともご親切にありがとうございます。


583 :名無しさん@そうだ選挙にいこう:2008/08/03(日) 10:19:52
>>582
件数だけでいいの?

584 :名無しさん@そうだ選挙にいこう:2008/08/03(日) 10:29:04
>>583
件数だけでOKです。

>>582さんに教えていただいたピボットテーブル、検索してやってみました。

ここで問題点が2つ。

元データの使用量のセルに 0も表記されているため、それを1と数えてしまうこと。
元データの使用物質名に表記ゆれがあり、別の物質とみなされてしまうこと。

の2点です。後者は同じAという物質にも拘らず、入力者によってAだったり、A"だったりaだったりするということです。

585 :名無しさん@そうだ選挙にいこう:2008/08/03(日) 10:35:28
表記ゆれは手作業ででも統一するしかないよ。他にどうしようもない。
ピボットを使う場合、件数はIDの数を数えることになる。使用量は関係ない。
なのでIDが2のABDEが1組あるとID2の個数は4件と表示される。

586 :名無しさん@そうだ選挙にいこう:2008/08/03(日) 10:37:25
表記ゆれは関数で解決できる

587 :名無しさん@そうだ選挙にいこう:2008/08/03(日) 10:49:23
>>585
データ数が軽く10000を超えているので、手作業は無理っぽいです。orz...
ピボットは使えないということでしょうか。
使用物質の種類は5種類程度、組み合わせも5種類程度。
今回はその5種類の組み合わせがそれぞれ何件あるか、というデータを月ごとに出したいのです。



>>586
関数ですか・・・。それもちょっとググって見ますが、参考になるページなどあれば、教えていただけると幸いです。

588 :名無しさん@そうだ選挙にいこう:2008/08/03(日) 10:52:38
>>587
B2に大文字小文字・半角全角どれが入ってても半角大文字
=ASC(UPPER(B2))

589 :名無しさん@そうだ選挙にいこう:2008/08/03(日) 10:53:39
件数数えるだけなら、さっきも書いたとおりIDの数を数えるだけなので表記ゆれは無関係

590 :名無しさん@そうだ選挙にいこう:2008/08/03(日) 11:02:54
>>577
をエクセルに放り込んだあと
F2に=ASC(UPPER(B2))
G2に=IF($A2=$A3,$G1&$F2,"")
H2に=IF($A2<>$A3,$G1&$B2,"")
これでH列に出来た物質(?)を表示できる
後はピボットで個数で集計すればok

591 :名無しさん@そうだ選挙にいこう:2008/08/03(日) 11:03:29
G列にタイトルをつけた場合は
=IF(ROW()=2,B2,IF($A2=$A3,$G1&$F2,""))


592 :名無しさん@そうだ選挙にいこう:2008/08/03(日) 11:15:40
>>588
実際のデータは大文字、小文字だけでなく、カタカナだったり、物質名#%*(のように物質名のあとに変な記号が
ついているものもあったりで様々なのです。
>>590
出来た物質、というか使った物質の組み合わせなので
それだと、同じ組み合わせでも

物質1 ブッシツ2 ブッシツ3
ブッシツ1 bussitu2 物質^#($3

のようになってしまうので、ここから個数を出すのは難しくなってしまわないでしょうか。

593 :名無しさん@そうだ選挙にいこう:2008/08/03(日) 11:24:16
>>592
表記ゆれは半角全角、大文字小文字までしか対応できない。そこまで来ると無理
直すつもりならID/物質名のテーブルを作って、IDからVLOOKUPなどで拾うのが確実

594 :名無しさん@そうだ選挙にいこう:2008/08/03(日) 12:15:08
>>592
そういう曖昧な判断はコンピュータの最も苦手とするところです

つまり今の表はデータベースとしては使い物にならないということなので、
元データの表記統一を先にやるしかないよ

作業列に
=SUBSTITUTE(ASC(UPPER(B2))," ","")
としておいて、その結果の名前を対象に置換(bussitu→物質 とか)した後
並び替えやオートフィルタをかけて処理したら多少は楽かな

595 :名無しさん@そうだ選挙にいこう:2008/08/03(日) 13:11:05
>>594
そうですよね・・・。
質問しながら色々見ているうちに、余りに酷いデータに困惑し、
こつこつ表記ゆれを直しておりました。
オートフィルでなんとかなりそうです。ってこの杜撰なデータは何なんだ。

また表記訂正できたら質問させて戴くと思います。そのときはまたよろしくお願い致します。




596 :名無しさん@そうだ選挙にいこう:2008/08/03(日) 14:38:19
【1 OSの種類         .】 Mac OS X 10.3.9
【2 Excelのバージョン   】 Excel2004
【3 VBAが使えるか    .】いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 microsoft excel xlsx 変換
Excelでxlsxのファイルを開きたいのですが、OSが古くて、開けないらしいので、変換をしたいのですがどのようにしたら良いでしょうか。
ファイルは、
http://www1.axfc.net/uploader/File/so/9222
にあります。

597 :名無しさん@そうだ選挙にいこう:2008/08/03(日) 14:52:01
エクセルで回帰分析を行おうとしたら
空白のセルがいくつかあるためか
回帰分析入力範囲に数値以外のデータがあります
とエラーが表示されます。
どうしたらよいのでしょうか?

598 :名無しさん@そうだ選挙にいこう:2008/08/03(日) 14:54:57
削除するか0にすれば?

599 :名無しさん@そうだ選挙にいこう:2008/08/03(日) 14:58:12
削除または0にするにはどうしたら良いのでしょうか?

600 :名無しさん@そうだ選挙にいこう:2008/08/03(日) 15:01:38
膨大な数のデータから空白のセルだけを見つけ出し
その値を0にする方法を教えてください

601 :名無しさん@そうだ選挙にいこう:2008/08/03(日) 15:09:24
置換

602 :名無しさん@そうだ選挙にいこう:2008/08/03(日) 15:12:42
>>596
ttp://www.microsoft.com/downloads/details.aspx?FamilyId=941B3470-3AE9-4AEE-8F43-C6BB74CD1466&displaylang=ja

603 :名無しさん@そうだ選挙にいこう:2008/08/03(日) 15:18:07
それMacじゃ使えないから

604 :名無しさん@そうだ選挙にいこう:2008/08/03(日) 16:21:04
そうか、スマン
じゃあこれか?
ttp://www.microsoft.com/downloads/details.aspx?FamilyID=6b9238e1-cf69-48c4-bf2d-c4a8aceee520&DisplayLang=ja
とりあえず左にMAC用何とかってあるので自分で探した方が早いかも

605 :名無しさん@そうだ選挙にいこう:2008/08/03(日) 21:20:02
>>604
どうも。今ダウンロードしてます。

606 :名無しさん@そうだ選挙にいこう:2008/08/03(日) 21:55:58
マクロを含んでいますっていう警告を無効にしたいのですがやり方を教えてください

607 :名無しさん@そうだ選挙にいこう:2008/08/03(日) 22:31:09
セキュリティを低に

608 :名無しさん@そうだ選挙にいこう:2008/08/03(日) 23:13:25
ありがとうございました

609 :名無しさん@そうだ選挙にいこう:2008/08/03(日) 23:37:53
低はお勧めしないが…

610 :名無しさん@そうだ選挙にいこう:2008/08/04(月) 00:32:07
>>577です。表記ゆれを何とか直し、ピボットテーブルで
>>577のデータから

  使用物質 A B C D E
ID
1        1 1 1 
2        1 1 1 1
3          1    1 1
4 1


のような表をつくりました。

ここから1 ABC
2 ABDE
3 BDE
4 A

のような表示をさせたいのですが、関数が全く分かりません。
=IF($C3>0,"A"$D3>0,"B",…)
(もしC3セルが1だったらA,空欄なら何も出力せず、かつ、 D3セルが1だったらB、空欄なら何も出力せず、E3セルが・・・
のようなことをしたいのですが、どうも違うようです。
ググってみても、関数一覧からどれをみればいいのかさっぱりなのです・・・。

611 :名無しさん@そうだ選挙にいこう:2008/08/04(月) 01:15:16
>>610
表記ゆれ修正お疲れさん
とりあえず、
使用物質AがC列
ID1が行3とすると

=IF(C3=1,"A","")&IF(D3=1,"B","")&IF(E3=1,"C","")&IF(F3=1,"D","")&IF(G3=1,"E","")
=IF(C3,"A","")&IF(D3,"B","")&IF(E3,"C","")&IF(F3,"D","")&IF(G3,"E","")
=REPT("A",C3)&REPT("B",D3)&REPT("C",E3)&REPT("D",F3)&REPT("E",G3)

以上3つのうちどれかでOKです

612 :名無しさん@そうだ選挙にいこう:2008/08/04(月) 16:17:09
ヘッダーや印刷タイトルの機能を
選択ページにのみ適用するというような方法は無いですか?
通常は全てのページに適用されると思うんですが、
それを、このページには必要ないというようにページを選択指定する方法を探しています。
色々探したんですけど、見つかりません。無理なんでしょうか。

613 :名無しさん@そうだ選挙にいこう:2008/08/04(月) 16:34:56
VBA使うしかないな

614 :名無しさん@そうだ選挙にいこう:2008/08/04(月) 19:25:00
>>612
素直にシートを分けるのが吉と思われ

615 :名無しさん@そうだ選挙にいこう:2008/08/04(月) 20:09:13
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 検索キーワード のみ訓えて頂いてもいいです

1234 というデータがあったとして

4213
1324
1432
1243
のように同じじゃない配列を自動でする方法は
あるのでしょうか?


616 :名無しさん@そうだ選挙にいこう:2008/08/04(月) 20:13:35
>>615
ない
関数を組み合わせて工夫するかVBAが必要

617 :名無しさん@そうだ選挙にいこう:2008/08/04(月) 20:58:01
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】いいえ
【4 VBAでの回答の可否】 否

例えば、セルA1に5って数値が入ってるとして、
セルB1に、C列でA1の中の数値の行を見たい場合はどうしたらよいでしょう?

A1→5
B1→参照するのはC"5" 表示されるのは10
C5→10

こんな感じです。是非ご教授願います

618 :名無しさん@そうだ選挙にいこう:2008/08/04(月) 21:10:54
>>617
=OFFSET(C1,A1-1,0)
=INDIRECT("C"&A1)
=INDEX(C:C,A1)

どれでも好きなのをB1に入れろ

619 :名無しさん@そうだ選挙にいこう:2008/08/04(月) 21:24:14
有難うございます!

620 :612:2008/08/04(月) 23:47:51
>>613-614
遅くなりました。
やはり無理ですか・・・
ありがとうございます。

621 :名無しさん@そうだ選挙にいこう:2008/08/05(火) 00:26:41
2003使用です。
携帯の最適プラン分析用で、繰越しの計算をできるだけ簡単にやりたいです。
マクロ等使わずに。
2か月繰越しを反映させたい。
どんな関数を使えばよいか・・・
基本料
通話料
パケット代
各プランの無料通話
を出しつつ繰越を計算に含めたいです。

622 :名無しさん@そうだ選挙にいこう:2008/08/05(火) 00:28:56
>>621
四則演算
関数なんていらん。

623 :名無しさん@そうだ選挙にいこう:2008/08/05(火) 02:43:31
>>611
ありがとうございます。今日は仕事が今終わったので、試すのは無理そうですが、明日くらいにやってみます。

ご丁寧な返答に感謝致します。

624 :名無しさん@そうだ選挙にいこう:2008/08/05(火) 07:54:31
>>621
a1に1月目の使用料金、a2に2ヶ月目・・
b列に基本料金
c・d・e列に無料通話分と繰越、if関数で分岐させれば良い
夕方まで分からなかったら作ってやるよ

625 :名無しさん@そうだ選挙にいこう:2008/08/05(火) 14:10:08
【1 OSの種類         .】 Windowsvista
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】グラフ上 要素名 表示 excel 直接

    要素1  要素2
太郎  50   60
次郎  40   70

つば九郎  70   90

要素1、要素2で散布図を作成したのですが、
グラフ上の各点に要素名(太郎、次郎等)を直接表示することはできませんか?
系列名や要素の値を仮に表示させて要素名をそこに放り込んでいくしかないのでしょうか?

626 :名無しさん@そうだ選挙にいこう:2008/08/05(火) 20:22:39
チェックボックスのフォントや
チェックボックス自体のサイズを大きくできないのでしょうか?
□check

627 :名無しさん@そうだ選挙にいこう:2008/08/05(火) 20:23:37
途中で送信してしまいました。。
□CheckBox ← これの□とテキスト部分を大きくしたいという意味です。


628 :名無しさん@そうだ選挙にいこう:2008/08/05(火) 21:27:43
>>626
まず、Altを押しながらチェックボックスの位置を決める。
次に右クリック→コントロールの書式設定で「セルに合わせて移動やサイズ変更をする」
で、セルの幅と高さを変えるとチェックボックスの大きさも変わる。

大きさを変えたら「セルに合わせて移動やサイズ変更をしない」にして
ドラッグすれば好きなところに配置できる。

629 :名無しさん@そうだ選挙にいこう:2008/08/06(水) 14:32:05
【1 OSの種類         .】 WindowXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】表 関数 範囲 取り出す 一覧

すみません、御願いします。
説明が下手なのでワークブックをUPしました。
http://www.csync.net/service/file/view.cgi?id=1218000554
シート1のセル:C2に入力された値に対して
シート2の表をとりだしたいのですが、どのような処理をしたら良いでしょうか?
表に名前等を付けたりしてVLOOKUPを使用したりしたのですが、
うまくいきませんでした。ご教授を御願い致します。

630 :おひさ ◆adhRKFl5jU :2008/08/06(水) 15:10:39
>>629
Sheet1!B4 = INDEX(Sheet2!B:B,MATCH($C$2,Sheet2!$A:$A,0)+$A4-1)
右と下にフィルコピー

631 :名無しさん@そうだ選挙にいこう:2008/08/06(水) 17:46:30
【1 OSの種類         .】 Windowsxp
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 exel 比較

質問です。
1列目、2列目にデータが数百個ずらーっとデータが並んでいたとします。
一セルには 「リンゴ 1個 200円 良」このまま、複数のデータがスペース挟みで入っています。
たとえばA1「リンゴ 1個 200円 良」 b1「リンゴ 0個 100円 良」とエータがあったとしたら
これを比較し、c1には変更箇所「1→0 200→100」d1には「リンゴ 0個 100円 良」と
このように出力がしたいです。

それぞれの行を比較して、変更のある行を抽出して、その隣に変更のあった箇所、変更されたデータすべてをコピー
するようなことです。
つまり、変更があった箇所をわかりやすいように表示し、変更があった項目を抽出したいです

よろしくお願いしますす。

632 :名無しさん@そうだ選挙にいこう:2008/08/06(水) 22:17:23
>>631
仮定の話なら、まずは1つのセルに複数のデータを入れるのをやめなさい。
考えを改めたら相談に乗りますよ。

633 :名無しさん@そうだ選挙にいこう:2008/08/06(水) 22:28:14
A列に全ての名簿があって、B列にはその中から今回不要な名簿が並んでます
A列のデータからB列にあるデータを引いて
必要なデータだけの名簿を出したいのですがどうやればいいでしょうか?

634 :名無しさん@そうだ選挙にいこう:2008/08/06(水) 23:07:44
>>633
全名簿と不要名簿を1列に並べてピボットテーブルで名簿の件数を集計する。
同じ人が2件いたら削除。


635 :名無しさん@そうだ選挙にいこう:2008/08/06(水) 23:11:20
>>633
A列の各データをVLOOKUPでB列から検索したあとオートフィルタで空白セルを除外

636 :名無しさん@そうだ選挙にいこう:2008/08/07(木) 12:00:09
excel2003です。一つのセルに文字を多く入力して
そのセルを入力フォーカスすると、文字でセルの右下が隠れて
フィルハンドルが出せないんですがこの場合どうしたら出せるんでしょう。

637 :名無しさん@そうだ選挙にいこう:2008/08/07(木) 12:48:42
メニューバーの編集→フィル

638 :名無しさん@そうだ選挙にいこう:2008/08/07(木) 23:49:37
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

エクセルのワークシートに貼り付けられている画像データを、
JPEG形式で抽出する方法で、簡単な方法はないでしょうか?

今行っているのは、以下の方法です。
1..[Ctrl]+[C]キーでデータコピー
2.ペイントを起動して、[Ctrl]+[V]で貼りつけ
3.JPEG形式で保存

取引先から画像データをもらう業務があるのですが、その時にエクセルファイルに貼り付けている人がいます。
そのとき、いちいち上記の作業を行うのが手間です。(数が多いので。)
マクロを組んででも手間が省けないかと思いまして・・・。

639 :名無しさん@そうだ選挙にいこう:2008/08/08(金) 00:04:47
>>638
VBAでやれないことは無いと思うけど
クリップボード管理ソフトを
探してみるといいかも

640 :名無しさん@そうだ選挙にいこう:2008/08/08(金) 06:44:23
検索するとき、特定の文字列や数字を除外したいんですがどうやればいいですか?

641 :名無しさん@そうだ選挙にいこう:2008/08/08(金) 06:54:49
【1 OSの種類         .】 Windows2000
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

作成したデータを他の人に渡したりする時などに
ワークシート全体を書式と値だけ丸々と別のシートにコピーする簡単な方法ないですか?

642 :名無しさん@そうだ選挙にいこう:2008/08/08(金) 07:48:21
>>641
ctrl+aの後、形式を選択して貼り付けで書式のみ

643 :名無しさん@そうだ選挙にいこう:2008/08/08(金) 16:00:18
縦書きで読点をうつと左側に寄せられ不自然になります。
読点を右寄せする方法はないですか?

644 :名無しさん@そうだ選挙にいこう:2008/08/08(金) 19:44:28
>>638
1シートに多くのファイルが貼られてるなら、
HTML形式で保存すると、写真が1枚ずつ別ファイルとして、保存されます。


645 :名無しさん@そうだ選挙にいこう:2008/08/08(金) 21:41:13
Excelで縦書き読点・・・・・・・・・・さすが夏休みw

646 :638:2008/08/08(金) 22:57:14
>>639
アドバイスありがとうございます。ちょっと探してみますね。
何かあるといいんですが・・・。

647 :638:2008/08/08(金) 22:58:07
>>644
これは盲点でした。ちょっと試してみます。
ありがとうございます。

648 :名無しさん@そうだ選挙にいこう:2008/08/09(土) 00:07:11
【1 OSの種類         .】 Windows2000
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

For Each C In ActiveSheet.UsedRange.Cells

next c

ですべてのセルを対象とし、

セルに「aaa」があった場合そこから下に検索し、「bbb」という値がある場合、
aaaの入っている A4 から bbbの入っている A10までを削除し、上方向にシフトする方法はをおしえてください。

A列のみにデータはあります。

649 :名無しさん@そうだ選挙にいこう:2008/08/09(土) 01:08:30
fornextでrangeに変数を組み合わせるのが早い
具体的に言うとA1.valueがaaaか否か、A2がaaaか否か・・って感じで
後の削除何タラはマクロの記録で

650 :643:2008/08/09(土) 01:17:52
>>645
サンクス Excelの設定では無理なのか
大した量じゃないし別のソフトで処理してみる

651 :名無しさん@そうだ選挙にいこう:2008/08/09(土) 06:48:00
webページからexcelにコピペしたら、茶色い巻物と、緑色のJが描かれている小さなアイコンのようなものがくっついているのですが、
これはなんですか?
取り除くにはどうすればいいですか?

652 :名無しさん@そうだ選挙にいこう:2008/08/09(土) 09:19:47
>>643
ならないけど?
でもフォントによってはなるかも

653 :名無しさん@そうだ選挙にいこう:2008/08/09(土) 10:20:43
【1 OSの種類         .】 xp
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 少し
【4 VBAでの回答の可否】 可

初歩的なことかもしれませんが
VBAで集計処理をして、シートのみを別名で保存したいのですが、
どうしたらいいでしょうか、
基ブックにシート3ページうちグラフ、VBAが入っており、
その内のグラフの入った1ページを別の名称として保存したいと思っています。

新規ブックを追加し、保存対象のページを全体コピペしましたが、
グラフに対して、基ブックとの自動リンクが張られてしまい失敗しました。



654 :名無しさん@そうだ選挙にいこう:2008/08/09(土) 10:27:51
>>653
ブックごとコピーして他のシートを削除とか
数が多いと面倒だけど

655 :名無しさん@そうだ選挙にいこう:2008/08/09(土) 15:15:41
Sub yattemiyo1()

Range("B6:B8").MergeCells = True
Range("B6").Borders (xlDiagonalUp)

End Sub

B6からB8を結合して斜線を引きたい場合
上のコードが間違ってるのはなぜなんでしょうか?


656 :名無しさん@そうだ選挙にいこう:2008/08/09(土) 16:27:49
    With Selection.Borders(xlDiagonalUp)
        .LineStyle = xlContinuous
        .ColorIndex = xlAutomatic
        .TintAndShade = 0
        .Weight = xlThin
    End With

.LineStyle とかの指定が無いから。


657 :名無しさん@そうだ選挙にいこう:2008/08/09(土) 23:18:21
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

こういう2つの列があったとします。
A列 B列
-------------
あ  い
い  え
う  お


これをA列,B列それぞれ空行を挿入してそろえたいのです。

A列 B列
-------------
あ  
い  い
う  
   え
お  お

こんなことは出来るでしょうか?

658 :名無しさん@そうだ選挙にいこう:2008/08/10(日) 01:46:20
できます。難しいです。


659 :名無しさん@そうだ選挙にいこう:2008/08/10(日) 02:10:12
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ

自作のマクロが使えない状態になり
編集も削除も出来ません。
セキュリティレベルを下げても駄目。
メッセージに出る「デジタル署名」を取得する方法も分かりません。

660 :名無しさん@そうだ選挙にいこう:2008/08/10(日) 09:44:31
>>659

2003は使ったこと無いからわからないですけど、
共有モードにしたとかはないですか

ちょっと情報がすくないかと思うのですが


661 :名無しさん@そうだ選挙にいこう:2008/08/10(日) 10:01:31
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 マクロ VBA 文字 読み取り
x行目のCxの全角文字列を判別して指定する複数の文字列を一つも含んでいなかった場合にFxへ数字を入れ次の行へ
それをシートの最後まで自動で実行することはできますでしょうか?

662 :名無しさん@そうだ選挙にいこう:2008/08/10(日) 11:01:50
>>658
あほか?
簡単だろ。

663 :名無しさん@そうだ選挙にいこう:2008/08/10(日) 11:13:54
>>662
ぜひ教えてください


664 :名無しさん@そうだ選挙にいこう:2008/08/10(日) 11:22:14
>>657
同じ文字列をそろえるってころ?
例の意味がよくわからない。

665 :名無しさん@そうだ選挙にいこう:2008/08/10(日) 11:24:49
同じ文字列は同じ行になるように空行を入れてそろえる。
A列だけにある文字列やB列だけにある文字列もあります。

666 :名無しさん@そうだ選挙にいこう:2008/08/10(日) 11:37:13
>>665
もうちょっと待って。
今誰かがVBAで作ってるから。
決め台詞は「VBAくらい使えるようになっといたほうがいいYO」


667 :名無しさん@そうだ選挙にいこう:2008/08/10(日) 11:53:12
VBAは多少はわかります。
どう作ったらいいかがわかりません。
ひょっとしたらExcelの機能で簡単に出来るんじゃないかと淡い期待もあり質問しました。

単純な例でロジックを考えてみましたが分かりませんでした。
A列の値=B列の値...空行挿入なし。A列,B列共に次の行を見る
A列の値>B列の値...A列に空行挿入
A列の値<B列の値...B列に空行挿入
とやれば出来るだろうとは思っていざ机上でやってみようとしたら

 A B
------
1:a b

↓こうしたい

 A B
------
1:a □
2:□ b


(1)a < bなのでB列に空行挿入
まで考えて、そこから先でつまってしまいました。
終了判定もどうやったらいいかわかりません。


668 :名無しさん@そうだ選挙にいこう:2008/08/10(日) 12:09:58
>>667

行を変数で回して65536までやればOK。

669 :名無しさん@そうだ選挙にいこう:2008/08/10(日) 12:58:01
まずすべての値を並べて、vlookupを使うとできる

670 :名無しさん@そうだ選挙にいこう:2008/08/10(日) 13:45:45
>>661
句読点を入れてくれ。何が言いたいかさっぱりわからん。

671 :名無しさん@そうだ選挙にいこう:2008/08/10(日) 14:12:06
x行目の、Cxの、全角文字列を、判別して、指定する、複数の、文字列を、一つも、含んで、いなかった、場合に、Fxへ、数字を、入れ、次の、行へ、それを、シートの、最後まで、自動で、実行する、ことは、できますで、しょうか?

672 :>661:2008/08/10(日) 17:47:40
Sub VBAなんてどうでもいいYO()
For I = 1 To 100
If InStr(Cells(I, 3), "検索文字列1") + InStr(Cells(I, 3), "検索文字列2") = 0 Then Cells(I, 6) = 1
Next
End Sub

673 :名無しさん@そうだ選挙にいこう:2008/08/10(日) 17:52:27
Sub 適当()
    Dim MyArray() As String
    Dim MyRng, MyRngTenki As Range
    Dim RowCount As Long
    Dim lc0, Lc1, Lc2, lc3 As Long
    Dim MyStr1, MyStr2 As String
       
    Set MyRng = Selection
    RowCount = MyRng.Rows.Count
    ReDim MyArray(1 To 2, 1 To RowCount)
    lc0 = 1: Lc1 = 1: Lc2 = 1
    Do
        ReDim Preserve MyArray(1 To 2, 1 To lc0)
        If Lc1 > RowCount Then
            MyArray(1, lc0) = "": MyArray(2, lc0) = MyRng.Cells(Lc2, 2).Value
            lc0 = lc0 + 1: Lc2 = Lc2 + 1
            GoTo Mynext
        End If
        If Lc2 > RowCount Then
            MyArray(1, lc0) = MyRng.Cells(Lc2, 1).Value: MyArray(2, lc0) = ""
            lc0 = lc0 + 1: Lc1 = Lc1 + 1
            GoTo Mynext
        End If
       
       
        MyStr1 = MyRng.Cells(Lc1, 1).Value: MyStr2 = MyRng.Cells(Lc2, 2).Value

674 :673続き:2008/08/10(日) 17:54:09
        Select Case True
        Case MyStr1 < MyStr2
            MyArray(1, lc0) = MyStr1: MyArray(2, lc0) = ""
            Lc1 = Lc1 + 1
        Case MyStr1 = MyStr2
            MyArray(1, lc0) = MyStr1: MyArray(2, lc0) = MyStr2
            Lc1 = Lc1 + 1: Lc2 = Lc2 + 1
        Case MyStr1 > MyStr2
            MyArray(1, lc0) = "": MyArray(2, lc0) = MyStr2
            Lc2 = Lc2 + 1
        End Select
        lc0 = lc0 + 1
Mynext:
    Loop Until Lc1 > RowCount And Lc2 > RowCount
   
    Set MyRngTenki = ActiveWorkbook.Sheets(2).Range("A1").Resize(lc0 - 1, 2)
    For lc3 = 1 To lc0 - 1
        MyRngTenki.Cells(lc3, 1).Value = MyArray(1, lc3): MyRngTenki.Cells(lc3, 2).Value = MyArray(2, lc3)
    Next
End Sub

675 :673:2008/08/10(日) 17:57:18
>>673-674
>>657 でした

VBAくらい作ってもらえる人を確保しといたほうがいいYO

676 :名無しさん@そうだ選挙にいこう:2008/08/10(日) 20:01:08
削除したファイル復旧は出来たが修復できないんです。
フリーソフトでファイル修復ソフトないかなぁ〜


677 :名無しさん@そうだ選挙にいこう:2008/08/10(日) 22:30:53
復旧も修復も、元となる情報が有って初めて可能なのだよ
だからいくらPCやOSが高性能になっても、原始的な複製バックアップの重要性は叫ばれ続け、
昨今のWinではシステム復旧の元となる情報を定期的に溜めている

削除したファイルが復旧出来たのは、消されたのは管理情報だけでファイル自体の情報は残ってたから
しかし、管理情報が消されたファイルは、破損お構いなしの扱いになるし、
修復の方は元となる情報もまず無いのでおそらく修復は不可能です

諦めて、きちんとバックアップを取らなかった自分を戒め、今後の教訓としましょう

678 :名無しさん@そうだ選挙にいこう:2008/08/10(日) 22:50:35
>>677
参考とし教訓とします。
修復のプロを探します。

679 :名無しさん@そうだ選挙にいこう:2008/08/10(日) 23:00:59
>>675
ありがとうございます。
目的通りの動作をすることを確認しました。
このまま使わせていただきます。
時間を見てじっくり解析したいと思います。

680 :名無しさん@そうだ選挙にいこう:2008/08/10(日) 23:17:42
>>679
ピボットテーブルを覚えるといい。
元データをこういう形にするんだ。

文字 区分
あ  A
い  A
う  A
お  A
い  B
え  B
お  B

データを文字別、区分別に集計してからIF()とかでちょっと整形すればできあがり。


681 :名無しさん@そうだ選挙にいこう:2008/08/10(日) 23:30:36
>>678
プロ(業者)に頼むのか?

一部が別データの上書きなどで破損したファイルの復旧は
HDDを分解して、磁気学顕微鏡などでの読み取り作業となるので
昨今の容量の多いHDDだと、数百万とかザラだぞ

682 :名無しさん@そうだ選挙にいこう:2008/08/11(月) 00:50:36
NASAが墜落したスペースシャトルのHDDの全データを
サルベージしたっていうけど、一体幾らかかってるんだろうな

683 :名無しさん@そうだ選挙にいこう:2008/08/11(月) 15:19:04
関数について質問です
作業列を作らずに、2行に一列足し算をするにはどうすればいいですか?


684 :名無しさん@そうだ選挙にいこう:2008/08/11(月) 17:29:34
意味不明…

685 :名無しさん@そうだ選挙にいこう:2008/08/11(月) 17:42:50
2行に1行ならsUMPRODUCTでぐぐれ

686 :名無しさん@そうだ選挙にいこう:2008/08/11(月) 18:38:02
「全シートのF2セルに入っている値の和」
を1つの数式で表すことはできますでしょうか?

687 :名無しさん@そうだ選挙にいこう:2008/08/11(月) 19:10:47
>686
エクセル 串刺し でぐぐると幸せになれるよ 

688 :名無しさん@そうだ選挙にいこう:2008/08/11(月) 21:10:00
【1 OSの種類         .】 Windows 2000
【2 Excelのバージョン   】 Excel 2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

Excel VBAでシート上に貼り付けたjpg画像をは
どうやって取得するのですか?
このオブジェクトを動かしたいのですが
うまくいきません。

お願いします。

689 :名無しさん@そうだ選挙にいこう:2008/08/11(月) 21:27:45
VBAで画像を操作する場合、直接貼らずにImageオブジェクト使った方が融通が利くよ

690 :名無しさん@そうだ選挙にいこう:2008/08/11(月) 21:51:42
【1 OSの種類         .】 Windows xp pro
【2 Excelのバージョン   】 Excel 2002
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

セルへの数値入力の際、他のセルへの入力数列データとしては使うけど
入力したセルそのものは非表示にできますか?

一応、ユーザ定義で;;;と設定すれば数値を非表示にできるのですが
000024と入力した際、非表示にはなるのですが、数値24として認識されてしまい0は無視されてしまいます。
また、G/標準;G/標準;G/標準; とした場合も 000024と入力すると、24と表示され数値24と認識されるみたいです。

他に、ユーザ定義で何とかなる方法あるのでしょうか?(項数6の数列と認識させたうえで、入力セルは非表示)

691 :名無しさん@そうだ選挙にいこう:2008/08/11(月) 22:00:35
表示形式を文字列にしてフォントの色を白にすればいい

692 :688:2008/08/11(月) 23:18:24
>>689
レスありがとうございます。
そうですか。
オートシェイプだとうまくいったんですが
jpgはどういう指定をするのかと思ったものですから。
imageオブジェクトで調べてみます。

693 :名無しさん@そうだ選挙にいこう:2008/08/12(火) 09:20:18
>>690
数値と文字列の使い分けに注意しよう
そのまま数字をを入力すると「数値」になる 000024→24
入力の先頭に['or^or"]をつけて入力すると「文字」になる '000024→000024


694 :名無しさん@そうだ選挙にいこう:2008/08/12(火) 11:25:09
【1 OSの種類         .】 Windows xp
【2 Excelのバージョン   】 Excel 2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
ぐぐった内容「フィルタ、設定、オートフィル、コピー」

所々空欄のある表に対して「フィルタ」を使って
空欄を抜き出し、その空欄に対して「オートフィル」もしくは「コピー」で
空欄埋めを行おうとした時、フィルタで縮めてる部分まで潰されます
2003では設定をいじることなく出来ていました

これを解決するためにはどこの設定をいじれば良いのでしょうか?
ご教授願います

695 :名無しさん@そうだ選挙にいこう:2008/08/12(火) 11:58:24
複数コピーしたセルを行順を逆にして貼り付けたいんだけど、どうしてもやり方がわかりません。
だれか教えてください。

696 :名無しさん@そうだ選挙にいこう:2008/08/12(火) 12:16:53
貼り付けてから作業セルに連番振って逆順でソート

697 :名無しさん@そうだ選挙にいこう:2008/08/12(火) 12:25:33
【1 OSの種類         .】 Windows xp
【2 Excelのバージョン   】 Excel 2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
オートフィルタをCtrl+zで戻したいのですが、できません
オートフィルタごと解除したり設定しなおすしかないのでしょうか?


698 :名無しさん@そうだ選挙にいこう:2008/08/12(火) 18:10:13
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel 2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

ファイルが保存された際にある処理を実施したいのですが、上書きはともかく
名付け保存(「名前を付けて保存」を縮めてみた)だと、本当に保存するかどうか
聞かれてキャンセルすることができますよね?

あれでキャセルされるとどうもうまくいかないのでWorkbook_BeforeSaveはダメです。
本当に保存された時のみ処理を実行するにはどうすればいいんでしょうか?

699 :名無しさん@そうだ選挙にいこう:2008/08/12(火) 18:58:08
カンフーダンクをエクセルで表現したいです。

700 :700:2008/08/12(火) 19:07:13
げっとぉおお

701 :名無しさん@そうだ選挙にいこう:2008/08/12(火) 19:51:14
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 excel セル 逆転

セルの内容を逆にして他のセルに入力したいのですが、どうやればよいでしょうか?
以下例です
セルAに "1 2 3 4 5" と入力されているのを、
セルBに "5 4 3 2 1" と入力したい
よろしくお願いします

702 :名無しさん@そうだ選挙にいこう:2008/08/12(火) 20:25:40
>>701
Sub test()
    Dim MyStr1, MyStr2 As String
    Dim MyLen, Lc As Integer
    Dim cl As Range
    For Each cl In Selection
        MyStr1 = cl.Value
        MyLen = Len(MyStr1)
        MyStr2 = ""
        For Lc = 0 To MyLen - 1
            MyStr2 = MyStr2 & Mid(MyStr1, MyLen - Lc, 1)
        Next
        cl.Value = MyStr2
    Next
End Sub


703 :名無しさん@そうだ選挙にいこう:2008/08/12(火) 20:46:17
>>701
標準モジュールに
Function StrRev(S)
StrRev = StrReverse(S)
End Function

セルBに
=StrRev(セルA)
↑ここの「セルA」は「A1」とかそーゆーことね、念のため

704 :名無しさん@そうだ選挙にいこう:2008/08/12(火) 20:50:06
>>698
WorkBookのSavedプロパティを見る

705 :名無しさん@そうだ選挙にいこう:2008/08/12(火) 20:52:11
>>704
議論が何段階か飛んでないか?

706 :702:2008/08/12(火) 21:25:49
>>703
VBAにそんな関数あったのね^^;


707 :名無しさん@そうだ選挙にいこう:2008/08/12(火) 22:06:21
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】

あるシートAに、会員番号、氏名、住所、電話番号、性別のリストがあります。

このシートAから特定の会員番号だけを抽出した、会員番号、氏名、性別だけのリスト、シートBを
作りました。

ところが、後になって、シートBには電話番号も必要なことが分かりました。

さて、、、何かうまい操作で、抽出会員番号の電話番号をリストBに追加する方法はないものでしょうか?

よろしくお願いします。

708 :名無しさん@そうだ選挙にいこう:2008/08/12(火) 22:08:08
>>707
VLOOKUP

709 :707:2008/08/12(火) 22:36:33
>>708
あんがと。
助かりますた。

710 :名無しさん@そうだ選挙にいこう:2008/08/13(水) 05:22:42
>>702-703
有り難うございました

711 :名無しさん@そうだ選挙にいこう:2008/08/13(水) 13:36:58
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 それなりに
【4 VBAでの回答の可否】 どしどしお待ちしています
【5 検索キーワード     】Excel 印刷範囲

シートにアクセス(鯖)からデータ引っ張ってきてローカルのエクセルにデータ表示させてんだ。
テーブルだとエクセルのバグで張り付けられなかったんでフィルタオプションでやってます。
データは20列で行は1000〜2000前後くらいだ。見出しやらなんやらで12行目から表示させてる。
前置きがこおね。
で、フィルタオプションでフィルタしたやつをね、非表示になったやつは印刷したくないんだ。
2003なら1ページめに勝手に合わせてくれてたんだが2007はオムツ弱いから無理みたい。
"フィルタされたデータ(範囲)を表示されているものだけ印刷する"
みたいな感じだ。よろしく頼む。

712 :711:2008/08/13(水) 14:24:03
一応あるんだが・・・
別シート使っててね、嫌なんだ。

'ワークシート内で定義してます
'印刷範囲コピーメソッド予定
Public Sub PrintCopy()

'保護されていたら
If Me.ProtectContents = True Then
Me.Unprotect '保護を解除
End If
Sheets("元データ").Select '現在のシート

'見出し以下最後に編集されたセル(一番最後のデータ)の範囲を指定
Me.Range(Range("A12"), Selection.SpecialCells(Type:=xlCellTypeLastCell)).Select
Selection.SpecialCells(xlCellTypeVisible).Select '見えている範囲のみ
Selection.Copy 'コピ
Worksheets("印刷シート").Range("A1").Select '印刷シートの方に移動

'貼り付けオプション 値のみで、再計算せず、空白のセルも含み、行列は入れ替えない
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("元データ").Select 'ただいま

'ロックされたセルの範囲を許可し、編集させず、フィルターは使えて、並び替えもおっけ
Me.Protect DrawingObjects:=True, AllowSorting:=True, _
Contents:=True, Scenarios:=True, AllowFiltering:=True

Me.Range("A1").Activate '一番左上にアクティブセルを移動
End Sub

悪けりゃこっちになるかもしれないし、もっと改善できるとこあるだろうから頼んだ!

713 :名無しさん@そうだ選挙にいこう:2008/08/13(水) 14:33:21
>711...........必死にツパッてて可愛いね

714 :名無しさん@そうだ選挙にいこう:2008/08/13(水) 16:36:53
【1 OSの種類         .】 WindowsVista
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

人と行き先ごとに単価がかわる
(Aさんがeに行けば1500円だけどBさんがeに行くと1800円、そして人も行き先もいろいろあります)
それを設定したいのです
A1,B1,C1,D1,E1,
人,行先,単価,行先,単価,

という表を作りA2から入力なのです。

で、別シートに設定を作りたいと思ってます。
=IF(Sheet1!B2="洛南コース",Sheet1!C2='1500') こんなふうにやればいいのか?と思ったのですがエラーでした
どうかよろしくお願いします

715 :名無しさん@そうだ選挙にいこう:2008/08/13(水) 16:51:08
>>714

eって行先だよね?

716 :714:2008/08/13(水) 17:01:47
>>715
はい、行先です

717 :名無しさん@そうだ選挙にいこう:2008/08/13(水) 17:35:59
とりあえずやってみた

表を作るときさ、

名前  行先1   行先2  行先3 ・・・←見出しね
Aさん 1000 1200 1300
Bさん 1200 1400 1000

みたいなのつくってね、

=IFERRER(VLOOKUP(ここに人,作った表,MATCH(行先,作った表の見出し,FALSE),FALSE),"")

を金額にセットしたら人と行先入れりゃあ金額でるっしょ
あとはがんがれ

人と行先はデータの入力規則→リストにしておくとやさしいよ

718 :名無しさん@そうだ選挙にいこう:2008/08/13(水) 22:37:39
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 該当するもの すべて表示

会員番号 氏名 購入日付 購入金額
1000 山田 4月1日 220円
1001 田中 4月3日 320円
1002 村田 5月9日 180円
1000 山田 6月2日 510円

というデータがあり、会員番号「1000」を入力すると

1000 山田 4月1日 220円
1000 山田 6月2日 510円

となるようにしたいです。
出来れば検索シートとデータシートは別々のシートがいいです。
よろしくお願いします。

719 :名無しさん@そうだ選挙にいこう:2008/08/13(水) 23:28:09
>>711
わかってても答える気がしないな。

>>718
関数で組むとめんどくさくて重いからピボットテーブルおすすめ

720 :名無しさん@そうだ選挙にいこう:2008/08/13(水) 23:31:39
>>710

ピボットテーブルで処理するのが一番てっとり早いと思われます。
次のページなどを参考に試してみてください。
http://sweety.jp/honobono/faq/pibo/index.htm#ouyou

仮に今回の作業に最適でなかったとしても今後かなり役に立ちますよ

721 :名無しさん@そうだ選挙にいこう:2008/08/13(水) 23:32:40
おっと、ピボットは嘘
オートフィルタオプションで直接入力するのがおすすめ

722 :名無しさん@そうだ選挙にいこう:2008/08/13(水) 23:34:07
721=719
ピボット厨とは一緒にしてくれるなよ・・・

723 :名無しさん@そうだ選挙にいこう:2008/08/13(水) 23:37:25
あたいの股間にVLOOKUPして

724 :名無しさん@そうだ選挙にいこう:2008/08/13(水) 23:51:02
>>723
VLOOKUPだと上の口しか満足できないんだよ。

725 :名無しさん@そうだ選挙にいこう:2008/08/13(水) 23:56:38
ここでVBA厨登場
F11でVBエディタを開いて 検索シートをダブルクリック
次の式をそこに入れてくれたまえ
元データがSheets("データシート").Range("A1")から始まっていて、
検索シートの"$B$1"に会員番号を入れて、結果をRange("A4")以降に書き出す仕様になってます。

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim MyRngMoto, MyRngSaki, MyCellKaishi, Cl As Range
    Dim MyStr As String
    Dim MyCol As Integer
    Dim MyRow, Lc As Long
   
    If Target.Address <> "$B$1" Then Exit Sub
    Set MyCellKaishi = Me.Range("A4")
    MyStr = Target.Value
    Set MyRngMoto = ThisWorkbook.Sheets("データシート").Range("A1").CurrentRegion
    MyCol = MyRngMoto.Columns.Count
    MyRow = MyRngMoto.Rows.Count
    Set MyRngSaki = MyCellKaishi.Resize(1, MyCol)
    Application.EnableEvents = False
    MyCellKaishi.CurrentRegion.Clear
    For Lc = 1 To MyRow
        If MyRngMoto.Cells(Lc, 1).Value = MyStr Then
            MyRngSaki.Value = MyRngMoto.Rows(Lc).Value
            Set MyRngSaki = MyRngSaki.Offset(1, 0)
        End If
    Next
    Application.EnableEvents = True
End Sub


726 :725:2008/08/14(木) 00:06:07
見出しも書き出すなら、
    For Lc = 1 To MyRow

    MyRngSaki.Value = MyRngMoto.Rows(1).Value
    Set MyRngSaki = MyRngSaki.Offset(1, 0)
    For Lc = 2 To MyRow
に変えてね

P,S. VBAは我流もいいとこなので添削してくれる人募集中です(^^;)

727 :名無しさん@そうだ選挙にいこう:2008/08/14(木) 00:21:50
変数名をMyから始めるのって、あの本から入った人だよね

728 :722:2008/08/14(木) 00:28:34
VBAおKだったのね。。

VBA素人だけどこんなのは?
抽出シートのA1に"会員番号"、A2に抽出する番号を入れる。


Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address <> "$A$2" Then Exit Sub
Sheets("データシート").Range("A1:D5").AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4:D4"), Unique:=False

End Sub




729 :名無しさん@そうだ選挙にいこう:2008/08/14(木) 00:31:29
>>725
とりあえず
> Dim MyRngMoto, MyRngSaki, MyCellKaishi, Cl As Range
結構こういう風に書いてる人がいるみたいだけど、
これだとClだけRangeで残りはVariantになるよ。
わざとならいいんだけど、指定したいならひとつひとつ指定しないとダメだよ。

Dim MyRngMoto As Range, MyRngSaki As Range, MyCellKaishi As Range, Cl As Range

730 :728:2008/08/14(木) 00:56:37
ああ、追加を考えるとこうか?

Private Sub Worksheet_Change(ByVal Target As Range)

    Dim r As Long
    r = Sheets("データシート").Range("A" & Rows.Count).End(xlUp).Row

   If Target.Address <> "$A$2" Then Exit Sub
     Sheets("データシート").Range("A1:D" & r).AdvancedFilter Action:=xlFilterCopy, _
     CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4:D4"), Unique:=False

End Sub

731 :名無しさん@そうだ選挙にいこう:2008/08/14(木) 01:16:12
>>719
ありがとうございます。
若干イメージと違う気がしますが、便利そうな機能ですね。
勉強してみます。

>>725,>>728
ありがとうございます。
思っていた通りの動作をしてくれました。
もうひとつ教えていただければと思うのですが
会員番号を入れる度に、出力されるセルに隣接するセルの文字が消えたり
出力セルの書式設定がデフォルトに戻ったりするのですが
それらを保持するのは難しいことなのでしょうか?

732 :名無しさん@そうだ選挙にいこう:2008/08/14(木) 01:20:27
簡単

733 :725:2008/08/14(木) 01:41:48
>>731
725ベースだと
MyCellKaishi.CurrentRegion.Clear
を    
Me.Range(MyCellKaishi, Cells(MyCellKaishi.End(xlDown).Row, MyCol)).ClearContents
に変えればOK

>>729
 そうだったのか orz
>>727
 参考にさせてもらってるサイトやファイルを作った人がそうなのかな(^^;)

734 :名無しさん@そうだ選挙にいこう:2008/08/14(木) 10:16:24
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 チェックボックスをラジオボタン オプションボタン レ 

おはようございます。よろしくお願い致します。
エクセル2003で使用できるチェックボックスをラジオボタンのように
どちらか一方を選択できるようにできますか?
または、ラジオボタンの画像◎をレに変更できますか?
VBAでレの画像をラジオボタンのように機能させる方法でもかまいませんので
よろしくお願い致します。

735 :728:2008/08/14(木) 10:32:25
>>731
728はエクセル機能のフィルタオプションを使ってるから
その仕様により書式はデータシートに依存しちゃうので
書式の保持はできないかも。
ただ、隣接セルに文字を入れてもそれが消える事はないはず。

736 :名無しさん@そうだ選挙にいこう:2008/08/14(木) 11:13:29
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003

突然失礼します。
昨日エクセルを立ち上げたら、ツールバーが全て反転しており何も入力できなくなっています。
セルにカーソルを持って行っても入力できません。
新規に立ち上げても、ドキュメントから立ち上げても、以前作ったものを閲覧するのみになっています。
突然こうなってしまいまして、何も出来ずに途方にくれてます。

なにか対策は無いでしょうか。困っています。直す方法を教えてください。
よろしくお願いします。


737 :名無しさん@そうだ選挙にいこう:2008/08/14(木) 11:23:54
>>736
保護はかかってないよね?

738 :名無しさん@そうだ選挙にいこう:2008/08/14(木) 11:26:56
>>737
新規でも同じ症状ですね。
かかってはいません。

739 :名無しさん@そうだ選挙にいこう:2008/08/14(木) 15:15:44
>>734
CheckBoxのChangeイベント使えば出来るけど

チェックボックスは複数選択
ラジオボタンは択一選択
というのが、一般的なルールで、これに反すると利用者に不要なストレスをかけることになります。
よっぽどの理由がない限り素直にラジオボタンを使いましょう

740 :名無しさん@そうだ選挙にいこう:2008/08/14(木) 17:03:02
>>736
windows updateやった?
俺はそれでwordがおかしくなって、msの日本語用パッチみたいなの落として当てたら直った。
OSもバージョンも違うけど、心当たりあるなら試してみるとうまくいくかも。

741 :名無しさん@そうだ選挙にいこう:2008/08/14(木) 20:30:19
OSはXP、 Ver2000です。関数の処理を教えてください。
次のような表があり、2種類のコード別に売上計上日を実績月に変換したいのですが見当がつきません。
売上計上日  コード  金額  実績月
2008/07/10 15      10000     7
2008/07/15 30      50000     7
2008/07/26 15      30000     8
2008/08/24 15      30000     8
2008/08/11  30      10000     8
2008/09/11  30      50000     9  

また、土日の関係で毎月締め日が異なるため、実績の集計期間が月により数日違います。例えば、
次のような感じで期間の始期終期が同日ではありません。
実績月7月の種別15の期間は6月25日から7月25日
  同   種別30の期間は7月11日から8月9日
実績月8月の種別15の期間は7月26日から8月24日
  同  種別30の期間は8月10日から9月10日

そこで別表にコード別の実績月別カレンダーを作成しVLOOKUPを使ってと考えたのですが、
コード別に検索を分ける方法が分かりません。
また、別表カレンダーを作らなくても2008/06/25<2008/07/25と期間指定だけしてより簡単に
処理できないかなと考えましたが・・・
お知恵を貸してください。


742 :名無しさん@そうだ選挙にいこう:2008/08/14(木) 20:45:55
>>741
思ったこと
・要件が不明確だなあ
・なんで質問テンプレ使わないの?
・挙げている例の意味がわかりづらい。というかわからない
・金額欄って意味あるの?(本文からは不要データにしか見えない)
・コードが2種類しかないのが確定してるならIF使えばいいだけでは?
・日付範囲は手入力でいいの?自動判定するの?

兎に角、すべてが分かりづらすぎる。
表も日本語もズレまくりだし。

743 :718:2008/08/14(木) 20:56:16
>>733
ありがとうございます。
無事に設定が残るようになりました。
ただ、会員番号1000を入力し、データ(仮に4行)が出力された後に
会員番号1001を入力し、データ(仮に2行)が出力されたとき、会員
番号1000のデータの一部まで残ってしまいました。
でも、手動で消しても大した手間ではないので大丈夫です。

>>735
すみません。隣接セルが消えるのは>>725の方だけです。
>>730では、書式設定の保持が難しいんですね。残念です。

調子に乗って、データシート2(会員番号、住所、生年月日)を作って
そちらからも検索シートに出力しようと>>725>>730を雰囲気でさわっ
てみましたが、できませんでした。まあ、当たり前なんですが。

とにかく、皆さんありがとうございました。

744 :名無しさん@そうだ選挙にいこう:2008/08/14(木) 21:01:47
>>741
関数式は式が入れられたセルに値を返すだけで、変換(値の書き換え)は出来ないよ
作業セルに式入れて、結果をコピペするとかなら可能だけど
また別表無しでやると、「別表」相当の物を式の中に組み入れなければならないから
式が複雑長大になる

VBAの使用が否ならば別表の使用は諦めよう
あとはIFでもいいし、HLOOKUPやINDEX,MATCHなどを組み合わせるとかすれば良い

745 :741:2008/08/14(木) 21:51:59
出直します。

746 :名無しさん@そうだ選挙にいこう:2008/08/14(木) 22:15:45
>>743
>会員番号、住所、生年月日
答えが常に一つなので、VBAを組むより、VLOOKUP関数を使ったほうがいいですよ。

>データの一部まで残ってしまいました
出力後に会員番号を消してませんか?
もしそうなら、End(xlDown) の意味を調べて適当に修正してください。

>雰囲気でさわってみました
そこから始めるのはいいですが、725のコードはいろいろ問題がある可能性があるので、他のサイトで探したコードで勉強したほうがいいと思います。
あと変数の概念とか、オブジェクトの階層構造とかをあらかじめ入門サイトで調べておくと勉強がスムーズに進みますよ

747 :734:2008/08/15(金) 01:09:07
>>739
CheckBoxのChangeイベントのやりかた、良ければ教えて下さい
お願いします。

748 :名無しさん@そうだ選挙にいこう:2008/08/15(金) 02:21:02
>>747
少しは頭を使えよ、Changeイベントのヘルプは読んだのか?

例えば、CheckBoxAを押したら他の対応するCheckBoxのValueプロパティを
Falseにすりゃいいだろ

749 :718:2008/08/15(金) 05:58:16
>>746
ありがとうございます。
実は、住所のが変更になった際に、その履歴を…と思っていまして。
とにかく、入門サイトを見て少し勉強してみます。

750 :名無しさん@そうだ選挙にいこう:2008/08/15(金) 15:34:58
>>741
コード別にソートしなおして
=SUMIF(…)-SUMIF(…)
で出来そうな気がするが…

751 :734:2008/08/15(金) 23:15:11
>>748

ありがとうございます

752 :名無しさん@そうだ選挙にいこう:2008/08/16(土) 09:50:18
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 excel 日付 シリアル値

セルA "2008/1/1" を&で他のセルとつなげたらシリアル値になってしまうのですが、
そのままつなげるにはどうしたらいいですか?

753 :名無しさん@そうだ選挙にいこう:2008/08/16(土) 10:04:18
=text(A1,"yyyy/m/d")&"文字"
text関数は数値を指定した形式の文字列として返す関数

数値の書式はセルの書式設定で、指定したい形式を一度指定してから
ユーザー定義書式を選択すると見ることができます。

754 :名無しさん@そうだ選挙にいこう:2008/08/16(土) 10:25:26
>>753
有難うございました
出来ました

755 :名無しさん@そうだ選挙にいこう:2008/08/16(土) 14:57:34
WEEKDAY関数で曜日をわりだし、土日の場合のみ、セルを塗りつぶしたいのですが、分かる方いますか?

756 :名無しさん@そうだ選挙にいこう:2008/08/16(土) 15:06:12
はい、居ます

757 :名無しさん@そうだ選挙にいこう:2008/08/16(土) 15:08:49
>>756さん
教えてください。

758 :名無しさん@そうだ選挙にいこう:2008/08/16(土) 15:45:26
>>755
書式/条件付書式/数式が
=WEEKDAY(対象セル,2)>5


759 :名無しさん@そうだ選挙にいこう:2008/08/17(日) 06:44:33
http://best100.jp/link.php?carrier_id=3&category_id=21&site_id=yatiju

760 :名無しさん@そうだ選挙にいこう:2008/08/17(日) 09:50:43
【1 OSの種類         .】 Windows 2000
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】いいえ
【4 VBAでの回答の可否】 否

今、試合形式の結果をエクセルで自動計算させたいと思っています。
総当りの対戦表で

○2-0|●1-2|●3-0|・・・・

としています。※1試合の結果を記入するのに4列つかっています。これで
特定範囲の白星、黒星の数は、
 
白星 =COUNTIF(K7:CA8,"○")
黒星 =COUNTIF(K7:CA8,"●")

で出せました。次に特定範囲の得点数、失点数の合計を出したいのですが、
色々試したけど出来ません。たぶん、特定の文字(○とか−とか)の
後の数字を合計させる方法があれば出来そうなのですが、やり方がわかりません。。
どなたか良い方法を教えて下さい。

761 :名無しさん@そうだ選挙にいこう:2008/08/17(日) 10:12:23
おすすめなのはSUMIF
フィルタでよければSUBTOTAL
ちょっとめんどくさいけどDSUM
数が多いと遅いけどSUMPRODUCT

○がK列、得点がL列にあるときの○の得点数=SUMIF(K1:K99,"○",L1:L99)

762 :名無しさん@そうだ選挙にいこう:2008/08/17(日) 10:20:50
>>761
>>760はK列に「○2-0」が入ってるんでは?
まず数字を取り出して数値化させてやらないと

763 :名無しさん@そうだ選挙にいこう:2008/08/17(日) 10:56:17
=COUNTIF(K7:CA8,"○")
で出せてるって書いてあるでなあ。

764 :760:2008/08/17(日) 11:11:16
>>761

>K列、得点がL列にあるときの○の得点数=SUMIF(K1:K99,"○",L1:L99)

これを使わせて頂き、
出来ました!ありがとうございます!!

>>762

罫線で見た目上は一個のセルですが、KLMNの4列使ってました。
ご心配ありがとうございます!

765 :名無しさん@そうだ選挙にいこう:2008/08/17(日) 23:37:12
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可(のみ)
【5 検索キーワード     】 vba関連

行き詰ってしまったのでコード記載します><

予め関数が入ったセル”i”で重複と出た場合、行消去するようにしたんですが、
なぜか100行程度までしか適用されません。
逆に行数が少ない場合に実行した場合正常に消えているんですが・・・

・・・マクロを使いこなす程のレベルではもちろんないんですが、見た限りどこに問題があるのか検討つかない状態です。
すいませんがご存知でしたらよろしくお願いします。

以下のマクロを既に組んでます。↓
--
Private Sub CommandButton1_Click()
d = Range("A3").CurrentRegion.Rows.Count
For j = d + 2 To 1 Step -1
If Cells(j, "i") = "重複" Then
Rows(j).EntireRow.Delete
End If
Next j
End Sub
--

766 :名無しさん@そうだ選挙にいこう:2008/08/18(月) 06:10:45
CurrentRegionってのは空白列、空白行があるとそこまでだよ
 A B C D E
1 ■■■□□
2 ■■□□■
3 □■■□■
4 □□□□□
5 ■■□□■
の場合、A1のCurrentRegionはD列、及び4行目の空白で区切られ、A1:C3となる
行数の問題ではなく空白の有無が問題

空白があってもデータ最下段まで処理したければシート最下段からEndプロパティで追った方がいい
場合によってはUsedRangeも使えるが、こういう用途ではEndの方が確実だ

あと、どうせならVBAで重複チェックもすればいいのに

767 :765:2008/08/18(月) 06:31:09
おはようございます。
>>766
ありがとうございます。

業務で使用しているので、休暇中で、今実際にデータが空白で・・というのは検証できないんですが
可能性の問題でこれに起因していそうです。

よろしければ
>空白があってもデータ最下段まで処理したければシート最下段からEndプロパティで追った方がいい
>場合によってはUsedRangeも使えるが、こういう用途ではEndの方が確実だ

この最下段から〜という処理に変更したいのですが・・・お教え願いませんか?

シート間処理ってのもあったんですがVBAでの重複判定はVBA暦も浅く今の所。そこまでスキルがないです。
見栄えが悪いといえば悪いんですが処理的に動向というのは特に問題ないんでこのままで言って
スキルがおっつけば自分で何とか変更していきたいと思います。

768 :名無しさん@そうだ選挙にいこう:2008/08/18(月) 07:18:19
>>767
d=range("A" & rows.count).end(xlUp).row
かな

769 :名無しさん@そうだ選挙にいこう:2008/08/18(月) 11:37:12
Ver.2003を使っています。
複数のセルを選択して色を付けると罫線が消えてしまうのですが、
罫線も表示する方法はないでしょうか?

770 :名無しさん@そうだ選挙にいこう:2008/08/18(月) 12:23:32
>>769
試してみたけど、色を付けただけでは罫線は消えなかったよ

771 :名無しさん@そうだ選挙にいこう:2008/08/18(月) 13:03:54
>>769
それは罫線でなくセルの区切りだ

772 :名無しさん@そうだ選挙にいこう:2008/08/18(月) 16:16:36
XPでエクセル97を使っています。
ウェブサイト上の日付「2000年01月01日」をコピーして、セルに貼り付けると
そのまま「2000年01月01日」と表示されるのです。これを「2000/1/1」に変えたいです。
セルの書式設定→表示設定→日付→1997/3/4を選んでもダメです。
セルをアクティブにすると表示されるんですが、いちいち一つ一つしていくのが大変なので複数のセルを一度に行える方法
はあるんでしょうか?どなたか知っておられたら教えて欲しいです。よろしくお願いします。


773 :名無しさん@そうだ選挙にいこう:2008/08/18(月) 17:18:17
>>772
a1に貼り付けたとして
=DATE(LEFT(A1,4),MID(A1,6,2),MID(A1,9,2))

774 :名無しさん@そうだ選挙にいこう:2008/08/18(月) 17:23:13
>>772
1列ごとでよければ列を選択して
データ/区切り位置/そのままOK
といっても97でできるかはわからん。

775 :名無しさん@そうだ選挙にいこう:2008/08/18(月) 20:12:07
>>772
どこか空いてるセルに1を入力してそのセルをコピー
対象セルを全部選択
形式を選択 して貼り付け-除算(乗算でもOK)
セルの表示形式変更

の順番にやればOK

776 :名無しさん@そうだ選挙にいこう:2008/08/18(月) 20:14:17
>>772
=DATEVALUE(A1)

777 :769:2008/08/18(月) 20:48:32
>>771
そういうことですか、理解しました。

>>770
お手数かけて申し訳ありませんでした。

778 :名無しさん@そうだ選挙にいこう:2008/08/18(月) 21:29:29
エクセルでスクロールしても一行目がずっと上に表示されるように
するにはどしたらいいですか?
1行目 スイカ きゅうり
2行目 1   2
3行目 3   2
4行目
みたいのでずっとスクロールしてもいちぎょうめの
すいかきゅうりが表示されるの

779 :名無しさん@そうだ選挙にいこう:2008/08/18(月) 22:13:58
>>778
ウィンドウ枠の固定

780 :名無しさん@そうだ選挙にいこう:2008/08/18(月) 23:31:51
JP****** CN****** US1**** US7**** UK***** US6******

上記のようなデータが、A1セルに入っているとします。
上記データから、US6とUS7で始まるを文字列だけを抽出したい場合は、
どのような関数を組めばいいでしょうか?

midとfindを組み合わせたのですが、or指定がうまくいかず抽出できませんでした。

781 :名無しさん@そうだ選挙にいこう:2008/08/18(月) 23:41:02
>>780
まず複数のセルに分けたらどうなの?

782 :780:2008/08/18(月) 23:53:57
>>781
複数のセルに分けようかとも考えたのですが、ひとつのセルに入ってるデータの長さは
実際はすごく長くて、セルの区切り位置で区切ったら30列ぐらいになるんです・・・
しかも、行は5000行くらい・・・

上記のサンプルはわかりやすいように簡単な例をあげました。

783 :名無しさん@そうだ選挙にいこう:2008/08/19(火) 00:04:28
US6だけなら抽出できてるのかいな?

784 :780:2008/08/19(火) 00:08:14
>>783
はい、こんな感じで

=mid(A1,find("US6",A1),9)

もしくは

=mid(A1,find("US7",A1),7)

ただ、この2つの関数をORで一つの関数にしたいのですが、うまくいかんのです。

785 :名無しさん@そうだ選挙にいこう:2008/08/19(火) 00:09:30
=mid(A1,find("US6",A1),9) & " " & mid(A1,find("US7",A1),7)

786 :名無しさん@そうだ選挙にいこう:2008/08/19(火) 00:10:22
ああ全体をTrim()で囲った方がいいか

787 :780:2008/08/19(火) 00:14:27
>>785
www

なるほど、そいう手がありましたね。
全然思いつきませんでした。
一生懸命、mid関数の中に、ORでネストする方法ばかり考えていました。

ORって使える場所がいまいちよくわからないです。
if関数で使うのは定番ですが、他の関数だとダメなんでしょうか。

788 :名無しさん@そうだ選挙にいこう:2008/08/19(火) 00:17:09
>>785はUS7****とUS6******の両方が含まれてないと#VALUE!になるよ

789 :780:2008/08/19(火) 00:17:57
>>788
ありゃ・・・そうですか。

何かいい方法はありますか?

790 :名無しさん@そうだ選挙にいこう:2008/08/19(火) 00:28:32
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 Excel 別セルに値のみ出力 など

関数の計算結果を、別セルに値のみで出力することは可能でしょうか。

A1 B1 C1
6 5 =A1+B1

通常、=A1+B1の計算結果は、C1に表示がされると思うのですが、
それを、D1に値のみで出力したいのです。


791 :名無しさん@そうだ選挙にいこう:2008/08/19(火) 00:41:08
>>787
どう使ってもいいよ
あくまでもORはTRUEかFALSEを返す関数

>>789
んじゃベタでこう
=TRIM(IF(ISERROR(FIND("US6",A1)),"",MID(A1,FIND("US6",A1),9))&" "&IF(ISERROR(FIND("US7",A1)),"",MID(A1,FIND("US7",A1),7)))
書いてないがUS6******が必ず9文字で、US7****が必ず7文字って事でいいんだよな?
まあこれ以上情報後出しにされても俺はもう知らん

792 :名無しさん@そうだ選挙にいこう:2008/08/19(火) 00:49:06
>>790
VBA使わないと無理です。
ってか、その値はその後どんな処理するの?

793 :名無しさん@そうだ選挙にいこう:2008/08/19(火) 00:51:13
>>784
だったらorじゃなくてifをネストすればいいんじゃね?
=if(US6判定,US6取り出し,if(US7判定,US7取り出し,見つからない場合の処理))

794 :名無しさん@そうだ選挙にいこう:2008/08/19(火) 00:54:37
あ、最初にもう一つ両方見つかった場合の処理もいるのかな?
とりあえず3パターン順番にifでやればいいんじゃね?

795 :名無しさん@そうだ選挙にいこう:2008/08/19(火) 01:20:05
ネストしなくても、最後にTRIMすればいいだけでは

796 :名無しさん@そうだ選挙にいこう:2008/08/19(火) 02:05:05
>>792
ありがとうございます、そうでしたか。
その値は、その後別の関数で参照して計算します。
VBAを使用したやり方を、教えていただけますでしょうか。


797 :名無しさん@そうだ選挙にいこう:2008/08/19(火) 02:11:37
>>792

>その値は、その後別の関数で参照して計算します。

言葉が足りなかったです。
その値は、その後別の関数で参照して計算するのですが、
その値が値のみで固定化されてないと、参照した別関数の
計算結果が可変となってしまって、正しい計算結果を得られなく
なってしまうんです。。

798 :名無しさん@そうだ選挙にいこう:2008/08/19(火) 03:12:31
【1 OSの種類         .】 Windowsxp
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 excel 小数点 整数 抽出

COUNTIF関数を使って、整数を抽出したいのですが、
検索先のデータに小数点が入っています。
四捨五入形式の表示にしても、COUNTIF関数での整数抽出はできませんでした。

何かいい方法はないでしょうか?
よろしくお願いします。

799 :名無しさん@そうだ選挙にいこう:2008/08/19(火) 04:49:21
>>798
死者誤入(orz)形式の表示じゃなく、整数に丸めるのはダメなの?

800 :名無しさん@そうだ選挙にいこう:2008/08/19(火) 05:45:49
>>799
レスありがとうございます。
整数に丸めるっていうのは何か関数を使うのでしょうか?

801 :798:2008/08/19(火) 05:46:41
ROUND関数ってのがあるんですね。やってみます。

802 :798:2008/08/19(火) 05:52:59
>>800
やろうと思っていたことができました。
ありがとうございました。

803 :名無しさん@そうだ選挙にいこう:2008/08/19(火) 07:36:05
>>797
よくわからないけど、値が変わったらダメなのなら、
手作業でC1をコピーして、D1に
編集 - 形式を選択して貼り付け - 値
の方がいいのでは。
自動でやって可変にしないってのは面倒だよ。
(というか可変にするために自動にするんだ、普通は)

804 :名無しさん@そうだ選挙にいこう:2008/08/19(火) 15:27:53
>>796

VBAで値のみ貼り付け

後は考えろ

Private Sub Worksheet_Calculate()

Range("C1:C1").Copy

Me.Range("D1:D1").PasteSpecial Paste:=xlPasteValues, _
Operation:=xlPasteSpecialOperationNone

Application.CutCopyMode = False

End Sub


805 :804:2008/08/19(火) 15:29:46

Me.Range("C1:C1").Copy


806 :名無しさん@そうだ選挙にいこう:2008/08/19(火) 18:10:05
質問お願いします。
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 excel 改行 セル 移動

通常、セル内で文字を日本語文字を入力後、enterキーを押すと文字が確定し、
もう1度enterキーを押すとセルがカーソルが直下のセルに移動しますが、
セル内で日本語文字または半角英数字を入力後、enterキーを1回押すと、セル内で改行されてしまいます。

つまり、Alt+Enterキーを押した時のような状態になります。
検索しましたが、「ツール」→「オプション」→「編集」→「入力後にセルを移動する」のオンorオフの切り替えはやりましたが、
元に戻りませんでした。
Altキーが常時オンになっているようなキーボードの不具合でもないようです。

元に戻すにはどうしたらよいでしょうか?

807 :名無しさん@そうだ選挙にいこう:2008/08/19(火) 21:28:09
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 excel 2007 白紙 印刷

印刷すると最後に余分な白紙が出てきてしまいます。
ググって「改ページプレビュー」で確認すれば飛び出した部分がわかるとあったので
やってみたら、確かに2ページ目が出てきます。
しかしCtrl+Endでジャンプした先は1ページ目の範囲内のセルです。
オートシェイプやフォーム、コントロールなどは一切使っていないただの表です。
2ページ目にあたる部分を行選択してCtrl+-で削除しても白紙が消えません。
1ページ目の範囲だけを選択して新しいシートにコピペしても、やっぱり2枚目に
白紙が印刷されてしまいます。

いったい、真っ白の2ページ目に何があるんでしょう?
あとは何を調べればよいのでしょうか?

808 :名無しさん@そうだ選挙にいこう:2008/08/19(火) 21:38:23
>>807
罫線はセル依存

809 :名無しさん@そうだ選挙にいこう:2008/08/20(水) 00:27:14
>>808
ページ境界の2ページ側に罫線が引いてあったのを見付けて削除した結果
解決できました。どうもありがとう。

810 :名無しさん@そうだ選挙にいこう:2008/08/20(水) 00:48:35
【1 OSの種類         .】 WindowsXP(SP3)
【2 Excelのバージョン   】 Excel2003(SP3)
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 Excel phonetic 失敗例

理屈を知りたく投稿させていただきます。
内容としては、手入力した漢字に対しPhonetic関数を使うことで、
フリガナを振る関数と認識しておりますが、
Webページ(HTML等)や別アプリケーションから文字列をコピーアンドペーストを用いてセルに文字列を貼り付けた場合、
通常漢字のまま出力されてしまいます。
この場合の回避方法はぐぐってVBAを使い回避することは理解しましたが、
何故このような結果になってしまうのかが分かりません。
よろしくお願いします。

811 :名無しさん@そうだ選挙にいこう:2008/08/20(水) 00:53:54
>>810
ExcelではIMEを直接制御して、人間が入力した変換前の読み仮名を、データとしてすべて保存してあるのです。
例えば2つのセルに
「やま」→変換→「山」
「さん」→変換→「山」
と入力してからPHONETICを使ってみてください。変換前に入力した読みがそのまま出てきます。

812 :810:2008/08/20(水) 01:05:38
>> 810氏
出し方の質問ではなく、
「漢字を貼り付け」た場合の結果に対する理屈を質問させてもらいました。
理解しにくい質問で申し訳ありませんでした。

>>人間が入力した変換前の読み仮名を(ry
というところから、最後に入力したのか貼り付けの漢字である場合、
その漢字の手前であるカナが入力されていないので漢字のまま出てきてしまう
ということなのでしょうか?

813 :名無しさん@そうだ選挙にいこう:2008/08/20(水) 01:27:53
>>812
IMEには「再変換」という機能があります。読み仮名を記憶する機能のないメモ帳などのアプリに
漢字を貼り付けたあと再変換すると、漢字変換辞書に登録されている単語から元の読みを
推測して表示してくれるのですが、
読みがデータベースに入っていなかった場合はPHONETICも内部でこの機能を呼び出して
適当な読み方を返すようになっています。
辞書に登録されてなくて再変換できなかった熟語は漢字のままになります。

814 :名無しさん@そうだ選挙にいこう:2008/08/20(水) 02:10:04
【1 OSの種類         .】 Windows Vista
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 微妙(For文がわかるぐらい)
【4 VBAでの回答の可否】 是非お願いします
【5 検索キーワード     】 Excel vba 動的配列

VBAの動的配列のことで質問があります。
僕は説明がへたくそなので、(自分でも日本語でおk、と言いたいくらい説明が下手)
実際にExcelファイルをアップロードします。
その中に質問の詳細が書かれています。

お手数ですが、なにとぞ、お願いいたします。

【アップロード先】
ttp://applis.servehttp.com/index.htm

【対象ファイル】
00022760.rar

【PASS】
1114





815 :名無しさん@そうだ選挙にいこう:2008/08/20(水) 09:38:24
>>810
シートのセル全体に対して
書式→ふりがな→表示/非表示
とやって、ふりがなを表示する状態にして色々いじると大体わかると思う。

PHONETICは、ふりがなを振る関数ではなく、ふりがなを取り出す関数。


おまけ。
Alt+Shift+↑というのがふりがなにカーソルを持って行くショートカットキーなんだけど、
ふりがなのないセルでこれをやるとふりがなが振られる。へー!

816 :名無しさん@そうだ選挙にいこう:2008/08/20(水) 10:45:38
>>814
VBA使うまでもなく関数で充分な気もするが
VBAで配列使って処理するなら、動的配列より連想配列の方が医員で内科医?

817 :名無しさん@そうだ選挙にいこう:2008/08/20(水) 11:07:18
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 Excel オブジェクト 変換

お客さんからもらったデータなんですが、
一見セル内に値が入ってるように配置されてる各テキストが、
実際は個々のテキストが全てオブジェクト化されてて困ってます。
こいつらをなんとかしてセル内の値に変換したいのですが、
なにかいい方法はありますでしょうか。
よろしくお願いします。

818 :名無しさん@そうだ選挙にいこう:2008/08/20(水) 11:41:18
>>817
オブジェクトがなんなのかは知らないが、
OCR or Copy&Paste
じゃないですかね。

819 :名無しさん@そうだ選挙にいこう:2008/08/20(水) 15:18:38
自宅
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003

会社
【1 OSの種類         .】 Windows2000
【2 Excelのバージョン   】 Excel2000

自宅で作ったExcelシートをUSBメモリに入れて会社に持っていったら
そのシートは正常に開きますか?バージョンが違うとダメなんでしょうか?
なんか間抜けな質問ですみません・・


820 :名無しさん@そうだ選挙にいこう:2008/08/20(水) 15:34:53
>819
2000と2003ならわりとそのままOKだった気がするが
2003で保存する時に保存形式を選べばよか。

821 :名無しさん@そうだ選挙にいこう:2008/08/20(水) 16:15:31
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 いいえ(記録してみたら訳が分からなくなってました)
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 Excel IF関数 空白セルを返す

B2に文字が入力されたら、A2に番号を振り、入力されていなければ未入力セルにしたい。
検索した結果、IFの偽の場合を""にすれば0が返らず空白セルにできるとあったため以下のように書きました。
=IF(CELL("type",B2)<>"b",A1+1,"")

しかしエクセルだけで作業が終わる場合はこれでよいのですが、タブ区切りのテキストファイル
に出力すると計算式の入っている所全部にタブが入った状態になってしまいます。
検索エンジンのデータファイル(タブ区切りテキストファイル)編集に使っているので、この状態だと何も
入っていないデータテーブルが出来てしまうので何とかしたいのですが、やはりマクロで書くほうがいいですかね・・・。

822 :名無しさん@そうだ選挙にいこう:2008/08/20(水) 16:17:07
質問させていただきます。よろしくお願い致します。

【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】Excel 印刷範囲 表示のみ

たとえなんですが、セルのA1〜A10を印刷範囲に指定しようとして
A3行〜A7行までは非表示だった場合、非表示の行を印刷範囲に含めずに
印刷するにはどうしたらよいでしょうか?

Selection.SpecialCells(xlCellTypeVisible).Select

↑をプリントエリアに設定しても参照できないと怒られてしましました。
これをなんとかして印刷範囲に設定したいのですが、、
どなたかよろしくお願い致します。


823 :822:2008/08/20(水) 16:23:57
申し訳ございません、言葉が足りませんでした。

Range("A1:A10").Select
Selection.SpecialCells(xlCellTypeVisible).Select
ActiveSheet.PageSetup.PrintArea = "$A$1:$A$10"

だと思うような結果でした。しかし、

Range("A1:A10").Select
Selection.SpecialCells(xlCellTypeVisible).Select
ActiveSheet.PageSetup.PrintArea = ActiveCell.CurrentRegion.Address

だとうまくいきません。

後出しですがフィルタオプションの使用後に毎回設定し直したいのです。

824 :822:2008/08/20(水) 16:59:11
たびたびすいません。自己解決しました。

参考サイト
http://www.geocities.jp/ionchan2006/excelvba046.html

実際のソースコードです。

Me.Range(Cells(1, 1), Cells(WorksheetFunction.CountA(Me.Range("A1:A10")), 1)).Select
Selection.SpecialCells(xlCellTypeVisible).Select
ActiveSheet.PageSetup.PrintArea = Selection.Address

これで1ページめに指定した範囲が印刷範囲として指定出来ました。

ありがとうございました。

825 :名無しさん@そうだ選挙にいこう:2008/08/20(水) 17:57:36
>>817
MsgBox ActiveSheet.Shapes(1).TextFrame.Characters.Text

826 :名無しさん@そうだ選挙にいこう:2008/08/20(水) 18:45:01
>>815

いえVBAでないとダメなんです。

仕事でこれと似たようなことをするんですが、勉強の為にVBAでやるように上から言われてるので…
連想配列ですか…
とりあえずトライしてみます。

827 :821:2008/08/20(水) 20:30:51
>>821です。やはりマクロにすることにしました。
そこでVBAでの命令語について質問です。
[B列の任意の1セル]はどう書けばよいでしょうか。
Range?Cells?ActiveCell?何だかどれも違うような・・・

828 :名無しさん@そうだ選挙にいこう:2008/08/20(水) 20:36:48
>>826
連想配列のサンプル作ってやろうか?

>>827
> B2に文字が入力されたら、A2に番号を振り、入力されていなければ未入力セル
なら、Cellsでループ回せばいいんじゃね?

829 :名無しさん@そうだ選挙にいこう:2008/08/20(水) 21:29:44
>>828

お願いします。

830 :名無しさん@そうだ選挙にいこう:2008/08/20(水) 21:51:25
【1 OSの種類         .】 Windows97
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 VLOOUP IF

↓シート1
A      B    C     D     E     F     
3証券番号  名前  評価   銀行名   支店名   担当者



3000

↓シート2
A    ・・・ G      H     I
3証券番号   銀行名   支店名   担当者



3000

2つのシートがあり、シート1には証券番号しかなく、並びはバラバラです。
シート2から抽出してシート1の「銀行名」「支店名」「担当者」に入れていきます。
VLOOKで作成しましたが、1つのファイルにシートが6つ、1シートにデータが3000ずつくらいあるので
ただでさえ開くと重いのに、更にVLOOKで貼り付けると表示が重くなるのでしょうか?
=VLOOKUP(A3, sheet2!$A$3:$I$3180, 9, FALSE)
これでやりましたが、VLOOKの代わりに INDEX MATCHを使ったほうが表示重くないのですか?
下のような数式
=IF(ISERROR(0/LEN(INDEX(Sheet2!I:I,MATCH(A3,Sheet2!A:A,0)))),"",INDEX(Sheet2!I:I,MATCH(A3,Sheet2!A:A,0)))

831 :名無しさん@そうだ選挙にいこう:2008/08/20(水) 21:56:36
>>829
00022833.rar
同じところに同じパスで上げた

書いたコードは標準モジュールのModule3とクラスモジュールのListItemClassにあるから

解りやすいように変数名とかに日本語使ってるのでこれをベースにするなら適当に変えてくれ
あと速攻で作ったので例外処理とか端折ってるから実用するならその辺も付け加えてね

832 :名無しさん@そうだ選挙にいこう:2008/08/20(水) 21:59:56
>>830
ISERROR(0/LEN(INDEX(Sheet2!I:I,MATCH(A3,Sheet2!A:A,0))))

この式の意味わかって書いてる?
こんな配列数式は余計に重くなるだけ。

833 :816,828,831:2008/08/20(水) 22:20:04
>>829
書き忘れたが、データ量が多くなるならCells().Valueで逐一取得や入力をせず
配列介した方が遙かに早いから

因みに入力の場合の配列は二次元の動的配列
取得の場合は自動生成に任せれば良い

834 :827:2008/08/20(水) 23:39:43
>>828
CellsではなくColumnsでした。すみません。

A B C
1 1
2
3
という表で、B2に何か文字が入ったら、A2にA1+1を入れたい。
>>821で最初に思いついてやったのがマクロではなくて、
A2に =IF(CELL("type",B2)<>"b",A1+1,"")  の入力。
ただこれだとCSVにしたときに式をコピーした範囲にタブが入ってしまうので
マクロでやった方がいいかなと。
で、あちこち自分なりに調べて書いては見たのですが・・・
セルを「書いたら」なのでGeneralでなくWorksheetで
Private Sub Worksheet_Change(ByVal Target As Range)
 If Columns("B") <> "" Then
 Columns("A") = Columns("A" - 1) - 1 'ここの表現・書き方が分からない。
 End If
End Sub

といちおう書いてみましたが、”1個前のA列の中身”の表し方が分からない
(動かないってことはそういうことですよね・・・)

835 :名無しさん@そうだ選挙にいこう:2008/08/21(木) 00:07:03
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 はい(参考文献を見ながらなんとか)
【4 VBAでの回答の可否】 可

A1に4と入力してを実行するとB64をC1に、C64をD1に、D64をB3にコピー
A1に7と入力してを実行するとB67をC1に、C67をD1に、D67をB3にコピー
A1に11と入力してを実行するとB71をC1に、C71をD1に、D71をB3にコピー
のようにするマクロを作りたいと思っています。
しかし、A1の数値を読み取って+60したセルを選択する方法がわかりません。

いろいろと調べてみたのですがわかりませんでした。
上記のようなことは可能でしょうか?
可能ならばどのようにすればよいのでしょうか?
よろしくお願いします。

836 :名無しさん@そうだ選挙にいこう:2008/08/21(木) 00:09:16
イベントの処理でできるし、それが載ってない本なんてありえない
まず1冊通して読め

837 :名無しさん@そうだ選挙にいこう:2008/08/21(木) 00:22:30
Excel2003です。
通常、入力のないセルは0だと思うのですが、既定値を別の値とする事はできますか?
例えば、何も入ってない空白セルを8として認識させ、
2と表示されているセルは実際は10であるようにして、
 1 2 1   1 2 …
をオートSUMで合計した場合に55になるようにしたいです。

838 :名無しさん@そうだ選挙にいこう:2008/08/21(木) 00:24:48
>>837
空白→8
2→10
1→??

条件をすべて書いてくれたら考えてみる

839 :名無しさん@そうだ選挙にいこう:2008/08/21(木) 00:47:35
LOOKUP関数の存在意義って何なのでしょうか?
LOOKUP関数の考えた方がベースにあって、VLOOKUPとHLOOKUPが成り立っているのはわかるのですが、
VLOOKUPさえあればLOOKUP関数って要らないような気がします。

LOOKUP関数にしかできないことってありますか?

840 :名無しさん@そうだ選挙にいこう:2008/08/21(木) 01:03:34
>>839
古いバージョンのExcelにはVLOOKUPがなくてLOOKUPを使うしかなかった。つまり昔の名残。

841 :834:2008/08/21(木) 03:23:40
自己解決しました。

Private Sub Worksheet_Change(ByVal Target As Range)
 Application.EnableEvents = False
 If Target.Column <> 2 Then Exit Sub
 If Target.Value <> "" Then
 Target.Offset(0, -1).Value = Int(Target.Offset(-1, -1).Value + 1)
 end if
end sub
で一応動きました。お騒がせしました。
動いたけど>>828さんの「ループさせる」もぐるぐる考え中・・・

842 :名無しさん@そうだ選挙にいこう:2008/08/21(木) 08:09:50
【1 OSの種類         .】 Windows98
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 入力規則

Sheet1のあるセルに入力規則をかけようと、
入力可能な値のリストを指定します。

この指定を、Sheet2のリストにしたいのですが、
可能でしょうか?

843 :名無しさん@そうだ選挙にいこう:2008/08/21(木) 09:25:51
>>842
ttp://www.relief.jp/itnote/archives/000210.php
普通に指定するだけじゃ無理っぽい

844 :名無しさん@そうだ選挙にいこう:2008/08/21(木) 10:00:04
>>839
いくらでもある
=LOOKUP(5,A1:A6,C4:H4)
とか
=LOOKUP(10^5,A:A)
とか君が知らないだけ

845 :名無しさん@そうだ選挙にいこう:2008/08/21(木) 10:50:33
>>844
今手元にある情報を元に判断した上での疑問を
質問しただけなのに、なんでそういう言い方するの。

>>839だって、違和感があるから
 『何か理由があるんだろうな』
ということで質問してるわけでしょ?

『VLOOKUPさえあればLOOKUP関数は要らないわけで、
 未だに使ってる奴は老害か情報弱者のどちらか
 どっちにしろ馬鹿。マジ死ねばいいと思う。』

とか言ってるなら”君が知らないだけ”とか
言っちゃってもいいと思うけどその口のきき方は
ひどいというかおかしいよ。

846 :842:2008/08/21(木) 11:09:07
>>843
質問前にWebを見回っていたのですが、
なかなかできませんでした。
でも、このレスを見てできました。
ありがとうございました。

847 :名無しさん@そうだ選挙にいこう:2008/08/21(木) 12:29:26
列に直接+−×÷を挿入して計算する方法は無いですか?
例えばA列に数字、B列に×、C列に数字、D列に=、E列に結果という感じに。

848 :名無しさん@そうだ選挙にいこう:2008/08/21(木) 12:39:51
>>847
ワークシート関数じゃ無理かなあ
VBAで自作の関数作ればいけるかもね
字句解析のサンプル探して付くってもいいし、演算子を置き換えてevaluateでもしいし

849 :名無しさん@そうだ選挙にいこう:2008/08/21(木) 12:44:35
>>847
=IF(B1="+",A1+C1,0)+IF(B1="−",A1-C1,0)+IF(B1="÷",A1/C1,0)+IF(B1="×",A1*C1,0)
ってぐらいしか思い浮かばないな


850 :名無しさん@そうだ選挙にいこう:2008/08/21(木) 12:49:47
ああ、でも単純に2値の四則演算だったら、4パターンしか結果が出ないから、全部の計算をやっておいて答えを表引きしてもいいかもね
=CHOOSE(SEARCH(B1,"+-×÷"),A1+C1,A1-C1,A1*C1,A1/C1)
こんなとかで

851 :名無しさん@そうだ選挙にいこう:2008/08/21(木) 12:53:01
お、かぶったかな。すまん。

852 :名無しさん@そうだ選挙にいこう:2008/08/21(木) 13:06:02
グラフを作成したら縦軸の項目が上下逆になってたので
軸の書式設定で軸を反転させて、それは直ったのですが
今度は下にあった横軸の項目名が、上軸に来てしまいました。
これを直すにはどうすればいいでしょうか?

エクセル2007です。
よろしくお願いします。

853 :847:2008/08/21(木) 13:12:21
なるほど。
47都道府県の各総生産(A)÷(B)人口(C)=(D)平均生産(E)の表を1〜47まで出したかったのですがこれでは無理そうですね。

854 :名無しさん@そうだ選挙にいこう:2008/08/21(木) 13:15:20
>>853
B列はあくまで表記だけにしてE列に式入れたほうが早いと思うぞ


855 :835:2008/08/21(木) 14:11:17
すみません。
>>835
を教えていただけないでしょうか?

よろしくお願いします。

856 :名無しさん@そうだ選挙にいこう:2008/08/21(木) 14:11:26
>>845

>LOOKUP関数にしかできないことってありますか?
に対する答えとしてまちがってはいない。
2ちゃんなんだしお前が一番おかしい。

857 :名無しさん@そうだ選挙にいこう:2008/08/21(木) 14:16:16
手遅れだな

858 :名無しさん@そうだ選挙にいこう:2008/08/21(木) 14:25:05
>>855
シートの内容を変更したタイミングで処理を実行させるには、worksheet_changeイベントと
いう仕組みを使えばおk
どのセルの内容が変更されたかを判定するには、上記イベントの引数targetというのを使えばOK
任意のセルから指定しただけ離れた位置にあるセルを取得するにはoffsetを使えばおk
あとは文献とやらで調べて好きにしておくれ

859 :名無しさん@そうだ選挙にいこう:2008/08/21(木) 14:26:58
>>852ですが自己解決しました。
ありがとうございました。

860 :名無しさん@そうだ選挙にいこう:2008/08/21(木) 17:39:58
>>858
ありがとうございます。
OFFSETを使って理想道理の動作をさせることが出来ました。

また、別の問題が発生してしまいました。
A1に10,11,12と入力してあります。
これをシリアル値に変換したいのですが上手くいきません。
=TIME("A1")などを試しましたが引数が少ないというエラーになってしまいます。
よろしくお願いします。

861 :名無しさん@そうだ選挙にいこう:2008/08/21(木) 17:44:17
>>860
=SUBSTITUTE(A1,",",":")*1
もしくはmid()などで取り出しtime()に入れる

862 :名無しさん@そうだ選挙にいこう:2008/08/21(木) 21:31:48
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 いいえ 
【4 VBAでの回答の可否】  否
【5 検索キーワード     】 文字列 検索 

ワークシート1
八百屋 大根  きゅうり トマト
魚屋  さんま あじ   ぶり

ワークシート2
大根
あじ
きゅうり

このワークシート2の大根やあじの右のセルに、ワークシート1を参照して
どこで売っているかという情報(大根なら八百屋、あじなら魚屋)を表示したいのですがどうしたら良いでしょうか。
MATCHの#N/Aエラーを無視できたらIFで強引に攻略も出来そうで、
そしてスマートな方法がきっとあるはずなんですが見つからなかったので質問します。

863 :名無しさん@そうだ選挙にいこう:2008/08/21(木) 21:34:02
WEBサイトのアクセス解析についてのグラフを作っているのですが、
ユニークアクセスやPV数と同じグラフに、特定サイトや検索エンジン経由などのアクセス数を入れると
数値の大きさが違う(PV数500に対して検索エンジン経由のアクセス数20とか)ので、
小さい方の数値のグラフがほぼフラットになってしまってよく分かりません。

視覚的に分かり易くするだけなら小さい数字に適当な係数を付ければいいとは思うのですが、
一般的にこのような場合どうやって1つのグラフにするのでしょうか?

864 :名無しさん@そうだ選挙にいこう:2008/08/21(木) 21:56:17
>>833

コードの中の、

Application.ScreenUpdating の意味がよくわかりません。

これをすることで、何か起こるのですか?
おそらく、画面の切り替わりを防ぐ意味合いのような気がするのですが、
いまいちこれが理解できないもので…


865 :名無しさん@そうだ選挙にいこう:2008/08/21(木) 22:01:15
Falseにすると画面の更新をしない

866 :名無しさん@そうだ選挙にいこう:2008/08/21(木) 22:07:25
>>865

ありがとうございました。
要は、VBAを動かすことによる画面操作を人間に見えないようにし、
処理が終わったあとで処理結果を画面に反映させる、ってことみたいですね。


867 :816,828,831:2008/08/21(木) 22:16:17
>>864,866
対象シートを表示した状態でセルに値を代入すると
代入→表示更新→代入→表示更新→代入→表示更新→代入→表示更新→代入→表示更新
となるが、表示更新を止めると
代入→代入→代入→代入→代入→表示更新
とすることで、見えないようにするというより無駄な表示更新を省ける
単純な処理では表示を止めるか否かで数倍以上の差が出ることもあるから
配列を介して一括代入するなら関係ないが、ループで単一セルへの代入を繰り返すなら表示更新は止めた方が良い

868 :名無しさん@そうだ選挙にいこう:2008/08/21(木) 22:17:15
>>866
途中の画面更新がないので処理速度が早いってのもある。

869 :名無しさん@そうだ選挙にいこう:2008/08/21(木) 22:18:05
>>866
それもあるけどメインの目的は
描画を省略することによる処理の高速化だと思うよ

870 :名無しさん@そうだ選挙にいこう:2008/08/21(木) 22:20:07
いつまでも同じことを・・・しつこ(ry

871 :名無しさん@そうだ選挙にいこう:2008/08/21(木) 22:25:33
一番早かった人が一番具体的ってのも
ちょっと悲しいものがあるな

872 :名無しさん@そうだ選挙にいこう:2008/08/21(木) 22:27:48
具体的ではないが

873 :名無しさん@そうだ選挙にいこう:2008/08/21(木) 22:28:21
>>862
八百屋 大根 きゅうり トマト
魚屋 さんま あじ ぶり

この書き方がスマートじゃない

大根 八百屋
きゅうり 八百屋
トマト 八百屋
さんま 魚屋

この形にしてVLOOKUPが適切

874 :名無しさん@そうだ選挙にいこう:2008/08/21(木) 23:33:03
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可

Xグループ A、B、C、D、E
Yグループ a、b、c、d、e

X、Yグループ計10人で得点を競い、1位を赤、2位青、3位緑、4位黄とセルを塗りつぶします。
またYグループの中で上位3人に入っていれば、特別賞としてオレンジで塗りつぶします。

点数を入力すれば、そのセルに塗りつぶしが入る設定にしたかったのですが、
2003の条件付書式では足りないし、1〜4位の順位と特別賞との優劣関係《1〜4位>特別賞》の表現もわかりません。
というかVBAに関して無知です。
以下のような形式で表現できるよう、VBAコードのご教授をお願います。

〔表示形式〕
A 80←セル内赤   a 72←同緑
B 75←同青      b 70←同黄
C 70←同黄      c 60←同オレンジ
D 65           d 50 
E 60           e 40

875 :名無しさん@そうだ選挙にいこう:2008/08/21(木) 23:47:49
>>862
おおまかには>873に同意。

強引に攻略するなら

=IF(COUNTIF(Sheet1!B:B,A1),INDEX(Sheet1!A:A,MATCH(A1,Sheet1!B:B,0)),IF(COUNTIF(Sheet1!C:C,A1),INDEX(Sheet1!A:A,MATCH(A1,Sheet1!C:C,0)),IF(COUNTIF(Sheet1!D:D,A1),INDEX(Sheet1!A:A,MATCH(A1,Sheet1!D:D,0)),"")))

=IF(COUNTIF(Sheet1!$B$1:$D$1,A1),"八百屋",IF(COUNTIF(Sheet1!$B$2:$D$2,A1),"魚屋",""))

で攻略

876 :名無しさん@そうだ選挙にいこう:2008/08/21(木) 23:55:24
あ、上の式は
=INDEX(Sheet1!A:A,MATCH(A1,IF(COUNTIF(Sheet1!B:B,A1),Sheet1!B:B,IF(COUNTIF(Sheet1!C:C,A1),Sheet1!C:C,IF(COUNTIF(Sheet1!D:D,A1),Sheet1!D:D,""))),0))
でいくらかは短くなるなw

877 :名無しさん@そうだ選挙にいこう:2008/08/22(金) 10:30:23
表を元に項目別の、グラフを作ろうとしているのですが
同じ項目名でまとまらずに、1コ1コそれぞれの数値を表示した棒がデータ数の分並んでしまいます。
同じ項目名毎にまとめて(平均)表示させるにはどうしたら良いでしょうか?
よろしくお願いします。

878 :名無しさん@そうだ選挙にいこう:2008/08/22(金) 11:00:27
>>877
ピボットテーブルがいいよ。


879 :名無しさん@そうだ選挙にいこう:2008/08/22(金) 12:52:24
>>878
ありがとうございます。
やっぱりそれが便利ですか・・・
実は未知の分野なので、ちょっと勉強します。

880 :名無しさん@そうだ選挙にいこう:2008/08/22(金) 13:19:04
ちょっとやりたいことがあるんですが、やりたいことがうまくいかないので知恵を拝借したいのでお聞きします。

ひょんなことから、EUCで書き込まれたテキストファイル(固定長だが長さが数十万行に及ぶことがあり、
Excelに取り込めない)をWindows上で扱う必要がありまして、EUC→S-JISへの変換をしたいと思っています。
UNIX上ではnkfなりを使えば簡単に実現できることですが、私以外はUNIXを使えず、また、その後
EXCEL及びVBAを使った作業があり、また私以外も作業をすることから、出来ればWindows上で
一連の操作が出来るようにしたいと考えています。

で、文字コードの変換方法はそのような情報が載っているWebサイトに任せるとして、
お聞きしたいのは文字コードの解析方法です。
イミディエットウィンドウに試しに次の関数を打ち込んだところエラーが返ってきました。
 入力:? asc(leftb$("試験",1)) ないしは、 ? asc(leftb("試験",1))
 結果:実行時エラー '5' /プロシージャの呼び出し、または引数が不正です。
Q1.leftb関数、leftb$関数は文字を返す関数(正しくはleftb関数はバリアント値を返すらしい)のはずですが、
   asc関数がうまく働かない理由は何でしょうか。(leftb関数、leftb$関数単体ではエラーは出ない。)
Q2.ここでの例で「試験」の1バイト目のコードを得る良い方法は何か内でしょうか。

1. WindowsXP Professional(より詳しい情報は不明)
2. Excel2003
3. はい(自明ですが)
4. 可
5. 1バイト JIS EUC 変換 読み込み 等
(注:ただし、現時点で用意できる環境はMac0S10.5.4 + Excel 2004)

881 :名無しさん@そうだ選挙にいこう:2008/08/22(金) 13:24:13
文字コード変換ツール「KanjiTranslator」
http://www.kashim.com/kanjitranslator/index.html


これで変換すればいいんでね

882 :名無しさん@そうだ選挙にいこう:2008/08/22(金) 14:41:30
ADODB.Stream

883 :名無しさん@そうだ選挙にいこう:2008/08/22(金) 14:42:03
>>874
Sub hoge()
  col = Array(3, 5, 4, 6, xlNone, xlNone, xlNone, xlNone, xlNone, xlNone)
  For Each ri In Range("a1:b5")
    c = 0
    For Each rj In Range("a1:b5")
      If ri < rj Then c = c + 1
    Next rj
    ri.Interior.ColorIndex = col(c)
  Next ri
  For Each ri In Range("b1:b5")
    c = 0
    For Each rj In Range("b1:b5")
      If ri < rj Then c = c + 1
    Next rj
    If c = 2 And ri.Interior.ColorIndex = xlNone Then
      ri.Interior.ColorIndex = 45
      Exit Sub
    End If
  Next ri
End Sub

884 :名無しさん@そうだ選挙にいこう:2008/08/22(金) 15:16:54
割合を出したのですが、最大で100%迄の表示としたいのですが
そのままだと、100%以上で表示されるものが出てきてしまいます。
100%以上のものは、全て100%と表示させるにはどうすればいいでしょうか?
よろしくお願いします。



885 :名無しさん@そうだ選挙にいこう:2008/08/22(金) 15:22:02
If hogehoge >= 100 Then
hogehoge = 100
End If

でどうでしょう。

886 :862:2008/08/22(金) 15:27:56
>>873 >>875-876
ありがとうございました。頑張ってみます。

>>884
100%は1なので、 IF("計算式">=1,1,"計算式") でいかがかなと。

887 :名無しさん@そうだ選挙にいこう:2008/08/22(金) 15:51:47
>>886
ありがとうございます!!!
出来ました。

888 :名無しさん@そうだ選挙にいこう:2008/08/22(金) 16:03:43
Excelとwordがないので購入しようとしてるんですが通常版を買えばいいのでしょうか?
幾らぐらいでしょうか?教えて下さい。

889 :名無しさん@そうだ選挙にいこう:2008/08/22(金) 16:17:56
値段は知らないが
・中古のPCに付いてるものをPCごと買う
・openofficeというエクセル・ワードに似た無料のソフトを使う
という選択肢もある
また学生なら学割で半額で買えたと思う

890 :名無しさん@そうだ選挙にいこう:2008/08/22(金) 16:30:08
そんなもんAmazonでも見て調べてくれよw

891 :名無しさん@そうだ選挙にいこう:2008/08/22(金) 16:30:24
【1 OSの種類         .】 Windows98かXP
【2 Excelのバージョン   】 Excel97か2000
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否(それをExcelでどう使うのかわかりません・・)
【5 検索キーワード     】(入力規則 入力結果)(SUBSTITUTE 使い方)
自分が作ったExcelのシートを多数の人に配り入力してもらったものを集めます。
多数の人が自分ルールで入力させないように入力規則のリスト選択で縛るのですが、更に選択したものによって別セルで入力できるものを縛りたいと考えています。
例えば、一括納入か分割納入かを選択させた後、一括は当然一回なので納入回数は1回で分割は1〜5回と隣接のセルに入力させたい。
一括なのに2回とか3回とか入力させないようにするには、どのようにしたら良いのでしょうか?
以上、よろしくお願い申し上げます。

892 :名無しさん@そうだ選挙にいこう:2008/08/22(金) 16:58:23
VBAしか無理
回数のところにコメントで「一括を選択した人はこの回数は適用されません」
と書いておけばいいんじゃないでしょうか

893 :名無しさん@そうだ選挙にいこう:2008/08/22(金) 16:59:58
>>891
A1: 一括納入 or 分割納入
A2: データ規則 整数 次の値の間 最小値1 最大値 =IF(A1="一括納入",1,5)
ではなくて?

 


894 :名無しさん@そうだ選挙にいこう:2008/08/22(金) 17:30:34
>>892
日本語読めない社員が多いんです…
いつも色々但し書きしておくんですが、毎回俺様シートを送り返してきて困ってました。

>>893
真似してやってみたら…出来ている気がします!
IFでA1に一括納入って書いてあったら1だけど、他は5までだよっていう事ですよね?
例については解決ですが、実際は文字を入力させたる場合もあったりして…
そういうのは無理ですかね?

レスありがとう御座いました。

895 :884:2008/08/22(金) 17:35:35
すみません、、やはりその計算式を入れると
100%以上以外のものも、全て100%と表示されてしまうようです。。
再度よろしくお願いします。



896 :名無しさん@そうだ選挙にいこう:2008/08/22(金) 17:48:49
>>895
=IF(A1/A2>=1,1,A1/A2)
試してみたが普通に計算されるよ
どういう場合で不都合が出る?

897 :名無しさん@そうだ選挙にいこう:2008/08/22(金) 18:05:57
>>891はVBA使わんでも入力規則でできるだろそれ

898 :880:2008/08/22(金) 18:58:27
>>881
残念ながら、新たなソフトウェアを導入することはセキュリティポリシーの関係上
導入することが出来ません。

>>882
当方がMac使いであることもあり、Microsoft依存となるADOを使用することは
出来れば避けたいところです。

899 :名無しさん@そうだ選挙にいこう:2008/08/22(金) 19:13:16
じゃあ無理だよバイナリをメモリ上で扱う仕組み無いもの
他の手段で文字コード判定しておくれ
できるかしらんけど

900 :880:2008/08/22(金) 19:53:20
>>899
そこで、一つ疑問があるのがLEFTB関数とASC関数の動作に関するQ1なのですが
> Q1.leftb関数、leftb$関数は文字を返す関数(正しくはleftb関数はバリアント値を返すらしい)のはずですが、
>    asc関数がうまく働かない理由は何でしょうか。(leftb関数、leftb$関数単体ではエラーは出ない。)
LEFTB関数はバイト単位でデータを扱うものと承知しております。
これを2バイトコードに適用すると、LEFTB("試験",1)で「試」の1バイト目が、
MIDB("試験",4,1)で「験」の2バイト目が(理論上)とれるはずです。
実際、この操作ではエラーが出ません。(もっとも、まともな表示もされませんが。)
一方、ASC関数は2バイトコードの場合では−32768〜32767を返すこととなり、
2^16文字のコードを持つことは不合理なことから何らかの方法でバイナリデータを
計算しているものと考えていました。

バイナリデータを扱えないとなると、この2つの関数はどのような動作をしているのでしょうか。
後学までに教えていただけると幸いです。

901 :名無しさん@そうだ選挙にいこう:2008/08/22(金) 20:30:55
>>880,>>900
 >>2・7
 >>3★VBAについて

いい加減、スレ違いだってことに気付いて帰ってくれ


902 :名無しさん@そうだ選挙にいこう:2008/08/22(金) 20:40:46
>>900
leftbならascbなんじゃ?

903 :名無しさん@そうだ選挙にいこう:2008/08/22(金) 21:55:37
教えて下さい
常に保存はするべき?

904 :名無しさん@そうだ選挙にいこう:2008/08/22(金) 22:02:32
>>903
当然

けど飛ぶ時に限って忘れるもんだ

905 :名無しさん@そうだ選挙にいこう:2008/08/22(金) 22:17:01
>>904
やっぱりそうですよね

タイミングっていつですか?愚問で申し訳ないです。

906 :名無しさん@そうだ選挙にいこう:2008/08/22(金) 22:53:58
【1 OSの種類         .】 Windows2000
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
分数の表示で分子を小数点以下一桁の表示する方法を'15.8/1000以外で
教えてください。

907 :874:2008/08/23(土) 00:24:41
>>883
ありがとうございます。
仕事で頼まれて困っていたので、とても助かります。
これから試してみます。

908 :名無しさん@そうだ選挙にいこう:2008/08/23(土) 00:39:48
>>906
無理

909 :名無しさん@そうだ選挙にいこう:2008/08/23(土) 01:13:54
>>906
通常 分母を×10すれば済む話なので
対応する機能はないと思いますよ
あきらめて別のところに入力して、表示に
=text(A1."0.0")&"/"&B1
とか使いましょう

910 :名無しさん@そうだ選挙にいこう:2008/08/23(土) 04:36:32
エクセルの関数について質問です。
エクセル2007で使える「IFERROR」が
2002や2003で使えなかったのですが他の関数で代用できないでしょうか?
2007を使えってのは無しで;

一応使用方法は
あるデータ内からVLOOKUPで検索をし、エラーが出た場合「無し」と表示させたいのです。
=IFERROR(VLOOKUP(*,*:*,FALSE),"無し")

あと、検索で複数HITした場合、その複数分も表示させる方法がもしあったら教えて下さい。

VBAは無しでお願いします。



911 :名無しさん@そうだ選挙にいこう:2008/08/23(土) 07:03:56
iserrorを使用しる

912 :名無しさん@そうだ選挙にいこう:2008/08/23(土) 07:05:06
フィルタを使用しる

913 :883:2008/08/23(土) 10:03:08
>>907
Yグループの3位が複数いる可能性があれば
下から4行目  Exit Sub を削除してください。

914 :名無しさん@そうだ選挙にいこう:2008/08/23(土) 11:02:53
>>910
通常は
=IF(ISERROR(VLOOKUP()),"無し",VLOOKUP())

915 :910:2008/08/23(土) 13:04:45
ありがとうございました。
まだ試せてないですがやってみます。

916 :名無しさん@そうだ選挙にいこう:2008/08/23(土) 16:00:54
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 excel value 検索 移動 vba

セルA1:A10に単語が入力されていて、検索でヒットしたらそのセルから横5セル分コピーさせる
というのがやりたいのですが、記録を取ったらvalueでコピー範囲が指定されてしまいました
どうすればいいか教えてください

917 :名無しさん@そうだ選挙にいこう:2008/08/23(土) 16:30:44
こんな感じ?
    MyStr = "test"
    For Each cl In Range("A1:A10")
        If cl.Value = MyStr Then
            cl.Resize(1, 5).Copy
            Exit For
        End If
    Next


918 :名無しさん@そうだ選挙にいこう:2008/08/23(土) 17:01:03
>>917
resize勉強になりました
まことにありがとうございましたm(_ _)m

919 :名無しさん@そうだ選挙にいこう:2008/08/23(土) 17:12:45
【1 OSの種類         .】 WindowsHP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 EXCEL 複数 シート 集計

1月、2月、・・・という名前のシートに入力した各項目を
別名のシート(分析用シート)に集計したいのですがやり方
(オートフィルでできるような方法)を教えてください。

【詳細】
シートの中身(簡略化して表記しています)

「1月」シート              「2月」シート
  A     B              A    B
1 収入 (データなし)       1 収入 (データなし)
2 合計 200,000          2 合計 220,000 
3 支出 (データなし)       3 支出 (データなし)
4 合計 100,000          4 合計 120,000

この構造(各セルの位置関係)は各シート(1月、2月、・・・)で同じ。
これを別名のシート(分析用シート)に下記のように集計したい。

  A    B      C  ・・
1     収入    支出
2 1月  200,000  100,000
3 2月  220,000  120,000



よろしくお願いします。

920 :919:2008/08/23(土) 17:14:46
OSはWindows XPです。

921 :名無しさん@そうだ選挙にいこう:2008/08/23(土) 17:28:20
単に=で引っ張ってくればいいじゃん 集計なんかしてないんだし

922 :名無しさん@そうだ選挙にいこう:2008/08/23(土) 18:07:33
>>919はsheet名の指定をオートフィルするやり方が知りたいんじゃない?
俺は知らないけど俺も知りたい

923 :名無しさん@そうだ選挙にいこう:2008/08/23(土) 18:09:57
そんなの簡単じゃん

924 :名無しさん@そうだ選挙にいこう:2008/08/23(土) 18:12:38
どうやるの?

925 :名無しさん@そうだ選挙にいこう:2008/08/23(土) 18:14:05
参照にオートフィルつかうってのが意味不明だが、
文字列をつかった間接参照のことならINDIRECTでできる

926 :名無しさん@そうだ選挙にいこう:2008/08/23(土) 18:15:48
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 はい(多少)
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 VBA セル 色


「A1のセルの色を(手動で)赤にしたら、AA1に"1"が(自動で)入力される」
といったマクロはないでしょうか?
"Private Sub Worksheet_Change"のような感じだと思うのですが・・・。
よろしくお願いします。


927 :名無しさん@そうだ選挙にいこう:2008/08/23(土) 18:28:02
>>925
sheetを連番で管理してるとき各シートの参照入力でオートフィル出来て便利じゃん?
INDIRECT便利だね

928 :919:2008/08/23(土) 18:37:06

INDIRECTで検索して、
http://www.relief.jp/itnote/archives/001697.php
を見たらまさにやりたい方法が載っていてできました。
どうもありがとうございました。

929 :名無しさん@そうだ選挙にいこう:2008/08/23(土) 20:21:30
>>926
セルの塗りつぶしでは、なぜかChangeイベントは発生しないんだよね…

930 :名無しさん@そうだ選挙にいこう:2008/08/23(土) 21:14:35
他の人から引き継いだエクセル2000のファイルなんですが
関数を入れても普段は隠れている筈の関数なのに表示され
さらに計算もしてくれません。自動計算もONになっています。

931 :名無しさん@そうだ選挙にいこう:2008/08/23(土) 21:30:39
書式設定

932 :906:2008/08/23(土) 21:41:05
>>908 >>909
ありがとうございました。

933 :名無しさん@そうだ選挙にいこう:2008/08/23(土) 22:08:04
>>930
ツール→オプション→表示→数式

934 :名無しさん@そうだ選挙にいこう:2008/08/24(日) 19:24:50
webページとして保存と発行の意味がわかりません。

何が違うのですか?また何に使うのですか?
質問するスレはここで合ってるのですか?

935 :名無しさん@そうだ選挙にいこう:2008/08/24(日) 19:54:47
困ってます。
ご助言いただけますでしょうか。

【1 OSの種類         .】 Windowsvista(会社はxp)
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい(使えませんがマクロを組んでいます)
【4 VBAでの回答の可否】 可・(VBAでの回答をお願いいたします)
【5 検索キーワード     】 Googleやヘルプでの検索キーワード
エクセル マクロ 指定した図形の削除

一つのブックの中にマクロのついたシートが
何枚かあります。それをマクロなしで
ブックごとコピーする
というのが目的です。
ここまではできたのですが
マクロの着いた図形が三つあり
この図形を削除してブックごとコピーしたいのですが
指定した図形の削除の仕方がわかりません。
よろしくお願いいたします。


936 :名無しさん@そうだ選挙にいこう:2008/08/24(日) 20:05:40
初心者ですので質問も下手ですが、どうか御願いします。

ExcelのセルA列にいくつかの数字を入力して、その引き算の答えをその下のセルに
出す際に、B列も範囲指定して=A1-D1 などとすると、指定したB列に答えを出すことは出来ましたが、
その際に、B列の下段だけに最終的な答えの表示だけでなくて、
途中経過の答えをB列に自動で出すようなやり方がわかりません。
A1-A2の答えをB2に表示して、A1-A2-A3の答えをA4に・・・といった感じで
だだーと最下段まで自動で表示させる方法をお教え願います。
素人の変な聞き方で申し訳ありませんです。

937 :名無しさん@そうだ選挙にいこう:2008/08/24(日) 20:12:04
自動じゃ無理です

938 :名無しさん@そうだ選挙にいこう:2008/08/24(日) 20:16:01
>>937
すげーな
意味わかったのか?

939 :936:2008/08/24(日) 20:26:38
>>937
長文の下手な質問なのにレスを有り難うございました。

940 :名無しさん@そうだ選挙にいこう:2008/08/24(日) 20:53:06
>>935
ありがとうござました。
図形れるのをやめて
解決しました。
たまに会社で
マクロを組むようにいわれるのですが
さっぱりわからず
コピペしてなんとか
作っています。
マクロを自在に使えるように
なりたいのですが
皆さんはどこで
習得されたのですか?
お時間があったら
レスをお願いします。


941 :名無しさん@そうだ選挙にいこう:2008/08/24(日) 21:10:56
【1 OSの種類         .】 WindowsVista
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可(手がないのなら)
【5 検索キーワード     】 セル 書式設定 リンク 他のセル 等

恐らく腐るほどなされている質問ではあると思うのですが、
どうにも判らないのでよろしくお願いします。

A1セルに何かが書いてあったとします。
B1セルにA1(=A1)へのリンクを貼りました。
この時、B1の書式設定を無視して、A1で設定した書式設定も一緒に
そのままB1に適応できる方法はないでしょうか。

別シートの複数の文章を、全く同じセル内に参照場所を
変更することによって入れるようにしているのですが、
文章量がまちまちで、ガラガラだったりはみ出してしまったりで
どーもしまりません。参照元の書式設定をそのまま利用できれば
一気に問題は解決できるのですが。どうぞよろしくお願いします。

942 :名無しさん@そうだ選挙にいこう:2008/08/24(日) 22:42:28
カメラツールで画像として貼り付けるといいんじゃないかな

943 :名無しさん@そうだ選挙にいこう:2008/08/24(日) 23:18:04
>>940
図形れる?


マクロは独学で覚えたな。まずは記録を有効に利用すべし。

944 :名無しさん@そうだ選挙にいこう:2008/08/24(日) 23:37:01
>>943
レスありがとうございます
>>図形れる?
図形入れるのをやめる
でした。
「い」が抜けてました。
会社にVBA逆引き大辞典みたいな本があるのですが
私には難しすぎました。
何度かマクロを作るよう
言われましたが、結局何も理解せずに
その場しのぎのマクロしかつくれず
色々考えてしまいました。
独学で変数とかDIMとか
理解できて素晴らしいですね。
マクロの記録からはじめたいと思います。
長々すみません。ロムにもどります。
ありがとうございました。

945 :名無しさん@そうだ選挙にいこう:2008/08/24(日) 23:39:56
内容と書式だけコピーしても、セルの大きさが違うと思った結果にはならないんじゃ?

946 :名無しさん@そうだ選挙にいこう:2008/08/25(月) 00:39:04
1 1 1 1
1 1 1 2
1 1 2 1
1 1 2 2
1 2 1 1
1 2 1 2
1 2 2 1
1 2 2 2
2 1 1 1
2 1 1 2
...
お世話になります。
イメージ的に上のように並んでセルに値が入っているとき、
そして、1行2列目(とか2行2列目とか3行2列目)が現在のアクティブセルのときに、
4行2列目、もしくは、5行2列目に移動するショートカットキーのようなものはないでしょうか。
あれば教えてください。(連続する同じ値の一番下付近に移動したいです。)

マクロを作れば出来そうな気もするのですが、共有PC・共有アカウントなので、マクロの登録をし辛いです。
マクロだと、アクティブセルの値チェック→次の行が同じ限り次の行へ移動→違う値を見つけたら、ジャンプ、という感じでいけそうな予感がしますが(まだ試していませんが。)

947 :名無しさん@そうだ選挙にいこう:2008/08/25(月) 12:36:52
>>946
ショートカットキーじゃ無理
マクロは
アクティブセルの値チェック→次の行が同じなら次の行をチェック→違う値を見つけたら、そこへアクティブセルを移動


948 :名無しさん@そうだ選挙にいこう:2008/08/25(月) 12:58:10
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 VLOOKUP 条件式

A列には0%〜300%までの数値が入っており
それを参照してB列にF〜SSSの評価を表示させています。

現在は他のセルに数値と評価の表を作り、それをVLOOKUPで参照させているのですが
VLOOKUPの場合だとA列の数値と完全に一致する場合しか参照されないので
A列の数値を切り上げる等するしかありません。
また評価は「20%ごとに1ランク上がる」というように比例しているわけでは有りません。

VLOOKUPに条件式を入れる事はできるのでしょうか、こういう場合はIFでネストするしかないのでしょうか。
配列数式を使えば可能でしょうか。
もし可能でしたら例を教えて頂けないでしょうか。

949 :名無しさん@そうだ選挙にいこう:2008/08/25(月) 13:38:15
>>948
VLOOKUPで検索の型をTRUEにしてデータを工夫すればどうにかなるのでは?

950 :名無しさん@そうだ選挙にいこう:2008/08/25(月) 14:25:08
>>948
ifのネストが楽だね
=if(and(A1<0.2),"F","") & if(and(A1<0.2,A1>0.4),"E","") & if...
って具合に&演算子でつなげれば楽かも


951 :884:2008/08/25(月) 14:27:52
>>896
土日に休んでしまい誠に申し訳ありません。

教えて頂いた式を当てはめると、100%以上も以下も、100%と表示されてしまいます。
自分の場合計算式が「=(A1/A2*A3)/A4」と長いので、そのせいでしょうか?
よろしくお願いします。

952 :名無しさん@そうだ選挙にいこう:2008/08/25(月) 14:31:28
>>949
TRUE型に関しては詳しくないので調べてみます。
ありがとうございます。

>>950
確かにネストだとわかりやすいんですね。
今後評価が細分化されてしまった時、ifが多くなりすぎてエラーになっちゃうのがちょっと不安です。

953 :名無しさん@そうだ選挙にいこう:2008/08/25(月) 14:52:56
>>951
なるんだけど・・
=IF((A1/A2*A3)/A4>=1,1,(A1/A2*A3)/A4)
って式にちゃんとなってる?
あと四則演算の順序は分かってるよね?
=(A1/A2*A3)/A4の場合A1/A2、A3をかけて最後にA4で割るんだよ

954 :884:2008/08/25(月) 15:46:44
>>953
今後こそはちゃんと出来ました。
余計な""を付けたり、よくわかりませんが式が微妙に違っていたようです。
四則演算の順序は大丈夫です。
何回も丁寧にありがとうございました。

955 :名無しさん@そうだ選挙にいこう:2008/08/25(月) 16:04:38
>>948
簡単なモデルで示すと、

0(〜 49):C
50(〜 74):B
75(〜 89):A
90(〜100):S として

これが F1:G4 に入力されているとすると(カッコ内は入力しない)
B2 に =VLOOKUP(A2,F1:G4,2,TRUE)

956 :名無しさん@そうだ選挙にいこう:2008/08/25(月) 16:22:19
ああ、ずれないよう絶対参照にするの忘れた、、
=VLOOKUP(A2,F$1:G$4,2,TRUE)

957 :名無しさん@そうだ選挙にいこう:2008/08/25(月) 21:37:16
おれもエクセルの一部になりたいです。
君にアドイン!アドイン!

958 :名無しさん@そうだ選挙にいこう:2008/08/25(月) 21:41:53
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 セル 無作為 ランダム 選択 抽出

B1からF1までなどの任意の範囲のセルから無作為に一つセルを選びA1に代入するような関数はありますか?

959 :名無しさん@そうだ選挙にいこう:2008/08/25(月) 21:44:46
ないです。

960 :名無しさん@そうだ選挙にいこう:2008/08/25(月) 21:55:01
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 セル 無作為 ランダム 選択 抽出

B1からF1までなどの任意の範囲のセルから無作為に一つセルを選びA1に代入するような関数はありますか?

961 :名無しさん@そうだ選挙にいこう:2008/08/25(月) 21:58:02
INDEXとRANDを組み合わせればできそう

962 :名無しさん@そうだ選挙にいこう:2008/08/25(月) 22:05:30
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 セル 無作為 ランダム 選択 抽出

B1からF1までなどの任意の範囲のセルから無作為に一つセルを選びA1に代入するような関数はありますか?

963 :名無しさん@そうだ選挙にいこう:2008/08/25(月) 22:10:12
>>961
何使おうとワークシート関数である以上、"代入"は無理だよ
ワークシート関数は算出結果を式を入れたセルに"表示"するだけだから。
ユーザー定義関数でなら可能だけど、VBAだ否ってことはユーザー定義関数も否なわけだし

964 :名無しさん@そうだ選挙にいこう:2008/08/25(月) 22:19:35
できないもんはできない。

あ き ら め ろ 。

INDEXとRANDを使ったところで常に数値がかわるから意味なし。

あ き ら め ろ 。

965 :名無しさん@そうだ選挙にいこう:2008/08/25(月) 22:28:44
>>963
ユーザー定義関数でも不可能です

966 :名無しさん@そうだ選挙にいこう:2008/08/25(月) 22:50:46
スレ・板違いだと思うのですが、バッチファイルからEXCELのBOOKに記
憶したマクロって、起動できるのでしょうか?これが出来たらかなり仕事の効率
があがるのですが・・・さすがに無理なのでしょうか



967 :名無しさん@そうだ選挙にいこう:2008/08/25(月) 23:40:17
>>966
WSH使え

968 :名無しさん@そうだ選挙にいこう:2008/08/26(火) 00:13:27
>963

それはA1の値が変わるので「代入」だと思うが・・・
何か変なこだわりでもあるのかな???

>962
A1=INDEX(B1:F1,1,INT(RAND()*5+1)) +[F9]

969 :960:2008/08/26(火) 00:22:43
ミスで二回書き込んでしまいました。すみません。
>959,961さんありがとうございます。けっこう難しそうだというのがわかったのであきらめます

970 :名無しさん@そうだ選挙にいこう:2008/08/26(火) 02:49:39
>>946
題の左上をA1として、A1:D10を選択(反転)
編集 (検索と選択@2007) ジャンプ セル選択  アクティブ列との相違
あとはTABで移動すればいいんじゃないのか?


971 :名無しさん@そうだ選挙にいこう:2008/08/26(火) 06:04:21
【1 OSの種類         .】 WindowsXP 
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい 
【4 VBAでの回答の可否】 可 
【5 検索キーワード     】 条件付き書式 リスト 行追加 変数

質問です。
先頭行がフィールド名、以下がレコードで、
C列が空白ならレコードを塗りつぶす条件付き書式を設定したリストがあります。
で、ボタンを一回押す度に、リストの最下レコードの一つ下に、
罫線と項番(ID)のみを一行ずつ追加する新規レコード作成マクロを作りたいのですが、
条件付き書式の変数のやり方が、どうにも分かりません。
=$C*<>"" とでも出来たらいいんですが、*は使えないし・・・。
よろしくお願いします。

972 :名無しさん@そうだ選挙にいこう:2008/08/26(火) 08:34:16
>>968
何勘違いしてるの?


973 :名無しさん@そうだ選挙にいこう:2008/08/26(火) 10:04:48
VBAの質問です
セルに入ってる時刻データから時刻のみを変数に代入するにはどうすればよろしいのでしょうか
A1=2:00:00
と入ってるとき、関数で言うと=hour(A1)のような処理をし
整数型の変数に「2」を代入したいのです


974 :名無しさん@そうだ選挙にいこう:2008/08/26(火) 10:36:30
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 はい(多少)
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 VBA コンボボックス IF ComboBox


ユーザーフォームに縦にコンボボックスを3つ作りまして、
コンボボックス1は2個のリスト選択(AとB)として
コンボボックス3のリスト選択をコンボボックス1で選択されたAとBに応じて
別々の項目選択をする形にしたいのですが、コードはどのように記述すれば良いでしょうか?
可能でしょうか?宜しく御願いします。




975 :名無しさん@そうだ選挙にいこう:2008/08/26(火) 10:50:26
>>974

コンボ1が変更された時にコンボ2の初期値がセットされるプログラムをイベントプロシージャに記述

976 :974 ◆9Ce54OonTI :2008/08/26(火) 11:32:27
>>975 コードの記述を頂けないでしょうか?

977 :973:2008/08/26(火) 12:36:29
自己解決しました
hour(変数)
とかそのまんま・・・


978 :名無しさん@そうだ選挙にいこう:2008/08/26(火) 15:51:21
【1 OSの種類         .】 Windowsxp
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】set 範囲選択 vba エクセル など
VBAで質問です
範囲選択したセルそれぞれに対して以下の計算をやりたいと思っています。

Private Sub CommandButton1_Click()
Dim b As String
b = TimeValue(Int(ActiveCell.Value) & ":" & _
Application.RoundDown(((ActiveCell.Value - Int(ActiveCell.Value)) * 100), 0) _
& ":00")
ActiveCell.Value = b
Selection.NumberFormatLocal = "[h]:m"
End Sub

内容は8.45なら8:45、3.3なら3:30と時刻に変換するコードです
本当なら関数で直せば良いのですが、入力時にピリオドとコロンが混じっていたので
関数は使えなく、マクロを使いました

置換も試してみましたが、8.3は8:03となってしまうのでうまくいきません

1つずつのセルならこれで問題はないのですが、複数セルのときにうまく動きません
(ActiveCellをSelectionにするとエラーになりました)
set(ステートメント?と言うのでしょうか)とforeachを組み合わせれば
できるのかな?とは思ったのですがなかなか理解できません
よろしければどなたかコードをご教授下さい。よろしくお願いします。

979 :名無しさん@そうだ選挙にいこう:2008/08/26(火) 16:33:06
Private Sub CommandButton1_Click()
Dim b As String
Dim ActveCell As Range
For Each ActveCell In Selection
b = TimeValue(Int(ActveCell.Value) & ":" & _
Application.RoundDown(((ActveCell.Value - Int(ActveCell.Value)) * 100), 0) _
& ":00")
ActveCell.Value = b
ActveCell.NumberFormatLocal = "[h]:m"
Next
End Sub


980 :名無しさん@そうだ選挙にいこう:2008/08/26(火) 16:45:14
質問っす。

PCにはExcel2003が入っています。
友人からExcelのSpecialist検定の問題集を譲り受けたのですが、この中に入ってる
模擬試験問題集CD-ROMを動かそうとしたところ、この問題集の該当
バージョンがExcel2002だったので、バージョンチェックで動きませんでした。


そこでですが、私の家にはofficeの2002も所持しています。

2003の入っている環境に、2002って入れても大丈夫なのでしょうか?
普段の使用はは2003。このテストのCD-ROM動かすときだけ2002には
働いてもらいたいのですが・・・・。

ではではよろしくお願いします。

981 :名無しさん@そうだ選挙にいこう:2008/08/26(火) 17:06:55
>>979
ありがとうございます!!!!!!!
めちゃくちゃ助かります!!!

982 :名無しさん@そうだ選挙にいこう:2008/08/26(火) 19:11:59
ActveCell などという紛らわしい変数は止めた方がいいよ。それから
b を文字列宣言したんだから、TimeValue を入れちゃあイカンだろ。
 
b = Int(r.Value) & ":" & Int((r.Value - Int(r.Value)) * 100)
r.Value = TimeValue(b)

983 :名無しさん@そうだ選挙にいこう:2008/08/26(火) 20:00:13


984 :名無しさん@そうだ選挙にいこう:2008/08/26(火) 20:24:08
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 VLOOKUP

A1には数千の任意の数字、文字列が入っています。(今後も増えていきます)
B1に任意の数字を入力し、B2にA?(?はB1で入力した値)の表示をさせる場合どのようにしたら宜しいでしょうか?
ご教授願います。

ttp://www.hsjp.net/upload/src/up38350.jpg


985 :名無しさん@そうだ選挙にいこう:2008/08/26(火) 20:39:05
>>984
=INDEX(A:A,B1)

986 :名無しさん@そうだ選挙にいこう:2008/08/26(火) 20:52:44
テスト

987 :946:2008/08/26(火) 21:10:46
>947
レスありがとうございます。
返信遅れました。申し訳ないです。知識分けていただきありがとうございます。

>970
2007はあまり導入されていないので限定的にしか使えませんです。環境書かなかったことお詫びします。
2007のPCを使うときに試してみます。
『ジャンプ セル選択 アクティブ列との相違』は初めての知識です。ありがとうございます。
しかし、編集ボタンってあったかな…。リボンIFは苦手です。

988 :名無しさん@そうだ選挙にいこう:2008/08/26(火) 21:33:28
>>987
書き方が悪かったね。
2003 だと >>970 の括弧を飛ばすんだ。
Ctrl+Gでジャンプ(メニュー)にショートカットできる。
ご期待に沿えるかわからん。


989 :名無しさん@そうだ選挙にいこう:2008/08/26(火) 21:42:57
>>976
ここではExcelの操作ならコード丸投げも許されるんだが
君のやろうとしてることはVBAではなくVBの範疇なので、それをやりたければ自分で調べよう

最も、簡単すぎるくらい簡単で、かつ頻用する手法なので、
そこら辺にサンプルがゴロゴロ転がってるから調べるには苦労しないだろう

990 :名無しさん@そうだ選挙にいこう:2008/08/26(火) 21:45:42
>> 980
ttp://support.microsoft.com/kb/881538/ja
共存はできるが、
> 普段の使用はは2003。このテストのCD-ROM動かすときだけ2002
これは難しいと思ったな。確か。

どういう中身かわからんが、拡張子xls?の
起動プログラム設定を変えれば可能かしらん?。

991 :名無しさん@そうだ選挙にいこう:2008/08/26(火) 21:59:32
いやリンク先にも2002からインストールしなきゃダメだって書いてあるじゃん

992 :名無しさん@そうだ選挙にいこう:2008/08/26(火) 22:12:20
過去ログ見られないんですが、Excelがかってに他のoffice関連のファイルを次々開くのは
ウィルスでしょうか? いろいろ調べてXlstartやPERSONAL.XLSとか、ACLファイルの破損とか
調べたけどどうしても直りません

993 :名無しさん@そうだ選挙にいこう:2008/08/26(火) 22:38:06
>>958
=INDIRECT(RAND(以下略

994 :名無しさん@そうだ選挙にいこう:2008/08/26(火) 22:48:01
>>991
それを読んで欲しくて書いたんだがな...言葉足らずだったようだ。
補足ありがと。Outlookはもともとだめだけど。

>>992
どんなファイルが開くの?
office関連だとWordとかAccessとかPPTとかなのかな。
他のも?

おやすみ。



995 :971:2008/08/26(火) 23:44:20
すいません、記述不足でした。
Javaが少し出来ますが、VBAは初心者です。
表は、リストオブジェクトにはしていなくて、ただオートフィルタかけただけの表です。
表は共有で使ってますが、共有状況下で条件付き書式が使えなければ、
共有じゃなくてもOKです。
実際、共有モードでコード走らせたら、条件付き書式のとこでエラー出たんで・・・。
共有モードで新たに条件付き書式を定義するのは仕様で無理っぽいですが・・・
事前に登録してある条件付き書式の設定を引っ張ってくるとか、
もし回避策などあれば、教えて頂きたいです。
紛らわしい書き方と後出し申し訳ない。
コード晒します。

Private Sub CommandButton1_Click()
'レコードの先頭をコピー
Range("A4:R4").Select
Selection.Copy
'表の最下レコードの一つ下に貼り付け
Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Offset(1).Select
ActiveSheet.Paste
'セル内容全消し
Selection.ClearContents '

'生成した新規レコードでC列のみ固定の複合参照という条件にしたいけど、条件式が分からない
'特定のセル番地なら参照できるけどレコード追加毎に可変となると・・・。
Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=$C?<>""""" ←C列のみ固定という条件にしたい
Selection.FormatConditions(1).Interior.ColorIndex = 48

'A列のセルにレコード番号入力
Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Offset(1).Select
ActiveCell.FormulaR1C1 = "=ROW()-3"
End Sub

996 :名無しさん@そうだ選挙にいこう:2008/08/27(水) 06:29:00
そんな面倒なTimeValue関数なんか使わなくたって、Format関数を使えば簡単だろ?
r.Value=Format(r.Value*100,"0:00")
ループしたくなけりゃコピーで100倍してApplication.Textでもいいし、他にも色々方法はある。

997 :名無しさん@そうだ選挙にいこう:2008/08/27(水) 06:29:03
【1 OSの種類         .】 Windows2000
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 いいえ

文章入りの表を作り、それをA4一枚にまったく同じサイズで(余白も)
印刷したいのですが、どうしたらいいのでしょうか?
原稿サイズ、印刷サイズともにA4で集約しても、1/4にされたものが
4ページできてしまいました。

998 :名無しさん@そうだ選挙にいこう:2008/08/27(水) 06:31:51
上はアンカーつけ忘れ
979や982へのレスだ

999 :名無しさん@そうだ選挙にいこう:2008/08/27(水) 06:44:02
 

1000 :名無しさん@そうだ選挙にいこう:2008/08/27(水) 07:28:28
1000

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

336 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)