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

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

Excel総合相談所 74

1 :名無しさん@そうだ選挙にいこう:2008/10/08(水) 19:47:24
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総合相談所 73
http://pc11.2ch.net/test/read.cgi/bsoft/1219830884/


2 :名無しさん@そうだ選挙にいこう:2008/10/08(水) 19:48:18
▼━質問時の注意・決まり事━━━━━━━━━━━━━━━━━━━━
・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/10/08(水) 19:48:59
上記 「Excelで出来ないこと、仕様上の制限」 は、一般的に出来ないとされていること、出来ないと思われるものです。
間違いがある可能性もあるので、上記に挙がってるもので「コレはこうすれば出来るよ」というものがあったらご指摘ください。
Excel2007についても未確認な項目が多いので変更点が有ればご指摘下さい。

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

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


4 :名無しさん@そうだ選挙にいこう:2008/10/08(水) 19:49:34
★ルールを無視すると…
 >>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分野の話ではないので、ここでは聞かないでください。

5 :名無しさん@そうだ選挙にいこう:2008/10/08(水) 19:50:07
★ 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セルを分割 (分割したいセル以外を結合)


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

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

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

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

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

ナレーター……誰か知らない人。

8 :名無しさん@そうだ選挙にいこう:2008/10/08(水) 19:53:05
453
テンプレ終了だけどうわああ順番が違う
次スレは>>1-2 >>4>>5>>3 >>6-7の順でおねがいします


9 :名無しさん@そうだ選挙にいこう:2008/10/08(水) 20:04:55
【1 OSの種類         .】 Windows2000
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 少しだけ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 Find search

Sheet1のB列に10000行の数字が並んでいます。
Sheet2のC列に100行の数字が並んでいます。
Sheet2にある数字がSheet1のB列にあれば
Sheet1の方のセルの色を変えたいのですが
お願いできないでしょうか?

10 :名無しさん@そうだ選挙にいこう:2008/10/08(水) 20:33:34
Sub TEST()
For B = 1 To 10000
For C = 1 To 100
If Sheets("Sheet1").Cells(B, 2) = Sheets("Sheet2").Cells(C, 3) Then Sheets("Sheet1").Cells(B, 2).Interior.Color = vbYellow
Next C
Next B
End Sub

11 :9:2008/10/08(水) 20:41:29
>>10
ありがとう。助かったよ

12 :名無しさん@そうだ選挙にいこう:2008/10/08(水) 20:41:29
重すぎワロタ

13 :名無しさん@そうだ選挙にいこう:2008/10/08(水) 21:13:33
A1、A2,、A3 のそれぞれ数字6,7,8が入ってるとします。
以下の数式を、B1に書きます。
=A1+A2+A3

その際、B1のセルに、個 という単位をつけて、出力させたいです。
B1セル内に、「〜」個、みたいに書いておいて、計算の出力は「〜」の部分のみに出力
されるなど、方法はないでしょうか? 

14 :名無しさん@そうだ選挙にいこう:2008/10/08(水) 21:37:18
>>13
書式で「0個」

15 :名無しさん@そうだ選挙にいこう:2008/10/08(水) 21:37:47
書式に #"個" と入れる

16 :名無しさん@そうだ選挙にいこう:2008/10/08(水) 21:38:11
>>13
B1に
=(A1+A2+A3)&"個"

17 :名無しさん@そうだ選挙にいこう:2008/10/08(水) 21:50:41
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 a little
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 VBA 抽出 重複
宜しくお願いします。
以下のようにあって、kudamono(1)=メロン kudamono(2)=リンゴ kudamono(3)=バナナ
kazu(1)=3 kazu(2)=2 kazu(3)=1という感じで格納したいとき、どの様にすればいいでしょうか?
ちなみに、果物は3種類とは限りませんし、セルが空白の場合もあります。
------------------------------------------------------------
メロン
バナナ
リンゴ
メロン
メロン
リンゴ

18 :名無しさん@そうだ選挙にいこう:2008/10/08(水) 22:03:38
>>17
ピボットテーブルでよくね

19 :名無しさん@そうだ選挙にいこう:2008/10/08(水) 22:25:10
>>1乙!
スマン、前スレで順番間違えたのは俺なんだ、、、、
許してくんろ。。。

20 :名無しさん@そうだ選挙にいこう:2008/10/09(木) 06:34:56
○の中に文字が書いてあるものを表現したいんですが、何か方法はありますか?

21 :20:2008/10/09(木) 06:38:47
http://mb1.net4u.org/bbs/index.php?usid=hiroshi&mode=image&file=9.jpg

のようなものを表現したいんですが

22 :名無しさん@そうだ選挙にいこう:2008/10/09(木) 07:12:48
見れない
とりあえず図形と重ねるとか。重なりは最背面に設定

23 :名無しさん@そうだ選挙にいこう:2008/10/09(木) 08:41:35
>>21
ttp://www.vector.co.jp/soft/win95/business/se311992.html
こいつで作れると思う
使ったことないけどw

24 :名無しさん@そうだ選挙にいこう:2008/10/09(木) 10:01:09
excelの表に数式を入れたら、枠内の左上に
緑の三角が表示されるのですがこれはどういう意味でしょうか?
また、これを消すにはどうすれば良いですか?

25 :名無しさん@そうだ選挙にいこう:2008/10/09(木) 11:18:17
知るかボケ
バージョンさえ書かない奴に答える口はねえ

26 :名無しさん@そうだ選挙にいこう:2008/10/09(木) 12:35:25
>25
まあまあ、初心者にはもう少しやさしくしましょう。
>24
このスレのbPと2をよく読みましょう。質問テンプレートを使いましょう。
で、ヒントを
ツール−オプション−エラーチェックのタブを見てください。それから
エクセルのヘルプで「エラーインジケータ」を調べるとわかるでしょう。


27 :名無しさん@そうだ選挙にいこう:2008/10/09(木) 14:04:05
>>20
オートシェイプでできる。そのままでも文字は入れられるけど、位置を微調整したいならテキストボックスを重ねる。

28 :名無しさん@そうだ選挙にいこう:2008/10/09(木) 14:04:46
>>24
まずはその三角をクリックしてみ

29 :名無しさん@そうだ選挙にいこう:2008/10/09(木) 14:12:54
すんまそん、ちょいと教えとくれやす
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 エクセル 区切り位置 大量
ながいながーい数字が何行もありやして
=LENで見ると192やら384やらくらいの桁らしいんだぎゃ
ほんでもってこれを全部1セルにつき2ケタずつに分割したいんすっけど
区切り位置てーやつで2ケタずつクリックしていくのはマジKYてなもんでして
=MID(数字,1,2)、=MID(数字,3,2)・・・みたいな方法しかないでがんすか?
なんかこうセクシィにスマートにずんばらりんっと切り抜ける方法を教えてけろ

30 :名無しさん@そうだ選挙にいこう:2008/10/09(木) 14:18:41
>17
これって、配列と集計に関するVBAマクロの一部に関する質問ということでしょうか?
セルアドレス表記が質問文中にひとつもなく、配列変数のことが書いてあるので。

dim kudamono(10) as string, kazu(10) as long 10種類と仮定して

kudamono(1) = "メロン"
kudamono(2) = "リンゴ"
kudamono(3) = "バナナ"

kudamono(10) = "****"
ここらへんはシート上のデータから出現順、もしくは別の一覧データからの転記として、

If kudamono(n) = Cells(tate,yoko).value Then
 kazu(n) = kazu(n) + 1
End If
みたいなことがしたいんですか?

31 :名無しさん@そうだ選挙にいこう:2008/10/09(木) 14:20:04
>>29
A1にその数字、
B1=MID($A$1,(ROW()*2)-1,2)
後は下にオートフィル
横がよければrow()をcolumn()にすれば良いが、列が足りなさそうね

32 :名無しさん@そうだ選挙にいこう:2008/10/09(木) 14:27:04
>>29
VBAでTextToColumns使えばすぐに解決できそうだけど
>【4 VBAでの回答の可否】 否
だからなぁ・・

33 :名無しさん@そうだ選挙にいこう:2008/10/09(木) 14:33:42
>29
どうしてもVBAを使いたくないんであれば、以下の手順ではどうでしょう。

1 処理対象の行だけのシートにして(別の新規シートにコピーでも可)、テキストファイルとして保存
  (拡張子はtxtがいいかも、csv(カンマ区切り)ではないですからね)
2 ファイル−開く−テキストファイル−スペースによって右または左に揃えられた固定長フィールドのデータ
  →テキストファイルウィザード2/3の画面で2桁ずつ区切りを作成
  (最大384桁ということは191回クリックすることになるのかな)
3 テキストファイルウィザード3/3の画面でデータ形式を文字列にしましょう
いかがでしょうか?

34 :名無しさん@そうだ選挙にいこう:2008/10/09(木) 14:39:08
>25
解答者の、人のレベルも色々混ざってるんだねぇ。
>26
テンプレートの件大変失礼しました。
お陰で解決しました。
以降このレベルの質問は初心者板でします。

35 :29:2008/10/09(木) 14:58:16
>>31
おおぉぉぉありがたや〜
それのcolumnでうまくいきやっした

>>32
すんまそん、村長から
「VBは悪魔の領域!けして近寄るでないないない」
と言われとるもんで・・・

36 :名無しさん@そうだ選挙にいこう:2008/10/09(木) 14:58:39
>34
「初心者板で」というか、ここがエクセル総合相談所だからここでいいんでは?

37 :名無しさん@そうだ選挙にいこう:2008/10/09(木) 15:14:45
>36
そうだね。
では、これからも質問させてもらいます。

38 :名無しさん@そうだ選挙にいこう:2008/10/09(木) 15:20:13
>>36>>37
自演うぜー

39 :名無しさん@そうだ選挙にいこう:2008/10/09(木) 15:46:33
>>17

Sheet1の中にべた書きした。作業列が必要になったがB列に果物名を入れる。
作業列なくてもできると思うけど汚いよね。
ちなみに配列は0スタートなので・・いやなら-1いらない子

Public Sub FruitCount()

Dim ArrFruit() As Long
Dim Count As Long

Count = 1

Do
If Sheet1.Range("B" & Count).Value = "" Then
Exit Do
End If

ReDim Preserve ArrFruit(Count - 1)

ArrFruit(Count - 1) = WorksheetFunction.CountIf(Sheet1.Range("A:A"), Sheet1.Range("B" & Count).Value)

Count = Count + 1
Loop
End Sub



40 :17:2008/10/09(木) 20:54:03
>>17です、いろいろご意見頂き有難うございます。
皆様の意見を参考にし以下のように出来上がりましたが、
もっと短く出来そうな気もしますので、何かありましたらご意見下さい。
---------------------------------------------------------
Sub くだものだもの()

Dim kudamono(10) As String
Dim kazu(10) As Integer
Dim count As Integer
Dim last As Integer
Dim f As Integer, y As Integer

last = Cells(65536, 1).End(xlUp).Row
count = 1

For y = 1 To last
If Cells(y, 1).Value <> "" Then
For f = 1 To count
If Cells(y, 1).Value = kudamono(f) Then
kazu(f) = kazu(f) + 1
GoTo Fruit
End If
Next

kudamono(count) = Cells(y, 1).Value
kazu(count) = 1
count = count + 1
End If
Fruit:
Next
End Sub

41 :名無しさん@そうだ選挙にいこう:2008/10/09(木) 21:02:03
勤務表を作成しているのですが

 A     B    C  D
始業   終業
8:00   17:00

このような表でCの列に9:00(8時から17時までの実働時間)と表示させたい場合
どのような式をCに入れたらよいのでしょうか?
昼休憩は考慮しなくていいです。



42 :名無しさん@そうだ選挙にいこう:2008/10/09(木) 21:03:50
>>41
B1-A1
場合によっては書式設定を[h]:mm等にすることも(合計などで、24:00以上を表記させたい場合)

43 :名無しさん@そうだ選挙にいこう:2008/10/09(木) 21:10:16
小出し申し訳ありません
23:00   1:00 などのように日をまたぐと####になりますが
この対応はどのようにしたらよいでしょうか?
小出しほんとうにすいません

44 :名無しさん@そうだ選挙にいこう:2008/10/09(木) 21:15:58
>>43
時間はマイナスにできないから
=B1-A1+IF(B1-A1<0,1,0)

45 :名無しさん@そうだ選挙にいこう:2008/10/09(木) 21:23:58
ありがとうございました。
式の意味はわかりませんが無事できました。
時間はマイナスにできない ってちょっとカッコいいですね。
浪漫を感じます。


46 :名無しさん@そうだ選挙にいこう:2008/10/09(木) 21:27:40
=MOD(B1-A1,1)

47 :名無しさん@そうだ選挙にいこう:2008/10/09(木) 22:39:58
>>45
分かりやすく変えると
=IF(B1<A1,B1-A1+1,B1<A1)
つまり終了が開始より前(日付をまたいでる)と、1(24:00)を足し、そうじゃなければそのまま引き算

最近このスレ全体でしき全体をネストするより式の一部をネストする式がはやってるよね
回答者が回答者に即発された・・のかな?


48 :名無しさん@そうだ選挙にいこう:2008/10/10(金) 02:16:47
excelでA4やA3に印刷する時収まりがいい行列の数あるんですか?
いままではなんとなくA4ぐらいかな?って作って改ページやら幅変えたり
して収めてたんですが最初からこんなレイアウトで作り進めばいいって感じがあるんでしょうか?
100%時、1セル縦横何ミリとか決まってますか?


49 :名無しさん@そうだ選挙にいこう:2008/10/10(金) 02:23:48
>>48
決まってません

50 :名無しさん@そうだ選挙にいこう:2008/10/10(金) 03:43:00
Excel2007の印刷プレビューで罫線が出なかったり太かったりするのは仕様ですか?
拡大⇔縮小で全然見た目違うしクリックした場所で変わったりするし
まるでプレビューにならんのですが…orz

51 :名無しさん@そうだ選挙にいこう:2008/10/10(金) 04:20:41
>>50
仕様です
Excelで印刷物を作るなら避けられない宿命です

>>48
改ページプレビューや
メニュー⇒印刷範囲の設定
などいじってると少し対処が見えてくるかも


Excelは「文書作成」ではなく「表計算」ソフトだから
成果物が紙ベースなのにExcelで作るなら
それなりの不便さと対処方を身につけないといけません

52 :名無しさん@そうだ選挙にいこう:2008/10/10(金) 07:12:12
複数のセルを囲むと合計数が表示されるオートSUM機能がありますが、これを
任意のセルを囲むと、たとえば(合計数+4)÷2の結果ができるように
変更することはできないのでしょうか?
突然ですが、どうしても解からないので御助言よろしくお願いします。

53 :名無しさん@そうだ選挙にいこう:2008/10/10(金) 07:25:13
>>52
できないよ

54 :名無しさん@そうだ選挙にいこう:2008/10/10(金) 07:42:12
>>52
右下に出る奴ならオートカルクだよ
アレは合計・平均とあとなんか。ぐぐればすぐに見つかる

55 :名無しさん@そうだ選挙にいこう:2008/10/10(金) 09:30:48
>>53

普通に出来るだろw

56 :名無しさん@そうだ選挙にいこう:2008/10/10(金) 10:13:54
>>55
>普通に出来るだろw
だったらやり方書いとけww

57 :名無しさん@そうだ選挙にいこう:2008/10/10(金) 10:35:29
ぐぐってみたけどわからん。とりあえず代替案

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 For Each r In Selection
  合計数 = 合計数 + r.Value
 Next
 Application.StatusBar = "コマンド  計算結果=" & (合計数 + 4) / 2
End Sub

58 :名無しさん@そうだ選挙にいこう:2008/10/10(金) 14:18:59
【1 OSの種類         .】 Windows2000
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否
【5 検索キーワード     】関数 参照 など
関数で数式そのものを参照することは出来ますか?
B1以降に=A1などの数式が入ってるとき、このA1という値が本当に入ってるかどうか、
作業列などで確認したいのです


59 :名無しさん@そうだ選挙にいこう:2008/10/10(金) 14:43:18
>>58
数式そのものを調べるのはちょっとめんどくさいよ。

調べたい列がB列で、作業列がC列とする。
まずC1セルをクリックして選択→メニューバーから「挿入」→「名前」→「定義」を選ぶ
次に「名前」のところに「suusiki」と入れて、その下の「参照範囲」のところに「=GET.CELL(6,B1)」と入れてOK
最後にC1に =ISNUMBER(FIND("A1",suusiki)) という式を入れれば、B列の式に「A1」が含まれるかどうかがわかる。

60 :名無しさん@そうだ選挙にいこう:2008/10/10(金) 15:03:22
>>58
書いててリロードしたら先越されてたw
なので少し>>59に補足
作業列の先頭(C1)を選択した状態で名前の定義をすること
それ以降のセルに書く場合は定義した定義した名前は変更しなくてよし

61 :60:2008/10/10(金) 15:04:56
訂正
×それ以降のセルに書く場合は定義した定義した名前は変更しなくてよし
○それ以降のセルに書く場合は定義した名前は変更しなくてよし

62 :名無しさん@そうだ選挙にいこう:2008/10/10(金) 17:38:25
>>59
ありがとうございます!


63 :名無しさん@そうだ選挙にいこう:2008/10/10(金) 22:46:33
【1 OSの種類         .】 Windowsxp
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可・否
【5 検索キーワード     】 excel vba worksheets.count
オープンしたブックのワークシート数をカウントして、String型の配列変数に格納したいのだが、いくらシート数があるかわからない場合、どうやって、WSheets()の()の中の数値を決めるのですか?
書き方を教えてください。
'******************************
'ファイルを開く
'******************************
Private WSheets() As String
Public Sub Main()
If OpenFile Then

End IF
End Sub
Function OpenFile() As Boolean
OpenFileName = Application.GetOpenFilename("Microsoft Excelブック,*.xls")
If OpenFileName <> "False" Then
Workbooks.Open OpenFileName
For i = 1 To Worksheets.Count
MsgBox ActiveWorkbook.Sheets(i).Name
Next i
OpenFile = True
Else
OpenFile = False
End If
End Function


64 :名無しさん@そうだ選挙にいこう:2008/10/10(金) 23:04:00
Yes Takasu Clinic

65 :名無しさん@そうだ選挙にいこう:2008/10/10(金) 23:05:33
>>63
シートの数はWorkSheets.Countで求められる。配列のサイズをあとから変更するのはReDim。
つまり
ReDim WSheets(Worksheets.Count)

66 :名無しさん@そうだ選挙にいこう:2008/10/11(土) 00:48:31
24時間で主に15分単位くらいで
観測していて

10月10日
21:00-21:45
23:30-24:00
2:30-5:30

10月11日
23:15-23:30

このようなデータをとっているのですが
これを一日単位で折れ線グラフとして活用したいと思ってます。

      10/10   10/11  10/12  10/13

2:00
1:45           │
1:30      
1:15    │
1:00    │

たとえばこのようにグラフとして活用するための方法をおしえてもらえないでしょうか?
よろしくお願いします。

67 :名無しさん@そうだ選挙にいこう:2008/10/11(土) 01:02:47
>>66
グラフとして活用すればいいんじゃないでしょうか?

68 :名無しさん@そうだ選挙にいこう:2008/10/11(土) 02:28:55
>>66
・どういう形式のデータを取ってるのか分かりません。
何時から何まで、という時間のデータだけですか?
開始終了時刻はひとつのセルに入力されてるんですか?
・主に15分というが、15分おきに24時間とり続けてるの?
・事例がよく分からない。1日の始まりとして定めている時間はいつ?
・1日に何度もデータを取っているのに、横軸が日付で縦軸が時間だと
一般的な折れ線グラフとして書けないと思う。どういうのを考えてるの?


69 :名無しさん@そうだ選挙にいこう:2008/10/11(土) 02:57:31
      10/10   10/11  10/12  10/13

2:00    \     | 
1:45     |    │
1:30    /      \
1:15    \       \
1:00      \      /

こういうの想像した、無理っぽい気がする。

70 :名無しさん@そうだ選挙にいこう:2008/10/11(土) 03:27:29
正方形の中に1本だけ対角線を引き、できた片方の三角形に数字、もう片方の三角形に「月」などの文字を入れ
曜日付きの日付みたいな欄を作りたいのですが、うまくいきません。
どうやるのが一番スマートでしょうか?
(後々、第三者が数字部分などを書き換えて使いまわしできるようにしたいです)

71 :名無しさん@そうだ選挙にいこう:2008/10/11(土) 03:30:39
>>70
オートシェイプとテキストボックス

72 :名無しさん@そうだ選挙にいこう:2008/10/11(土) 04:52:31
Excelってなんでこんな何年も言われてる機能付けないの?馬鹿なの?死ぬの?

73 :名無しさん@そうだ選挙にいこう:2008/10/11(土) 07:02:50
>66
絵を見ていたら、「株価チャート(グラフウィザードの左上の絵)」に一番近いので、
元データを株価チャートに対応するように加工したらどうですか?
ただし、株価チャートには短い横棒がくっつくので目障りか。

どうしても66のような絵にしたいんだったら、VBAでオートシェイプ(直線)を配置する
ように工夫するしかないかな。

まずはbPと2をよく読んでテンプレートに沿って質問を。

74 :73:2008/10/11(土) 07:46:54
株価チャートだと、縦方向にはひとつの縦棒しか表示できないな。
66の絵は元データとずいぶんかけはなれている。10月10日の分は
3件の時間帯があるのに、ひとつの縦棒だけ。
もっと具体的に元データと、ほしい結果の絵を示してもらわないと無理。

それか、セルをグラフの画素のように使う方法ならいろいろできるかも。

75 :66:2008/10/11(土) 10:29:24
説明下手ですみませんです。
色々な回答をしていただきありがとうございます。

見本をつくってみました。まだわかりづらいかとは思いますが・・
http://www.uploda.org/uporg1718629.jpg.html

こういうことがしたいというだけで
グラフの形、項目の場所(行、列)などはあまり考慮してないです。

青で塗りつぶしてるエリアはデータ部分です。(1画面で見やすくするためにここに置いてます)

〜やりたい事〜
・同日にとびとびの時間を記録している
・同日の観測地点ごとに記録してある開始時間〜終了時間までをグラフ化したい
・同日に観測地点が複数でる
・観測時間が重複?することがある(10/1茨城の部分のような感じ)

よろしくお願いします。




76 :66:2008/10/11(土) 10:31:35
書き忘れました

【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 グラフ 集計 などで検索しましたがあまり効果的ではなかったので
主にできる大事典などの書籍で調べてます


77 :73,74:2008/10/11(土) 11:17:30
>75,76
自分の今の技術だけだと74で書いた「セルを画素として使う方法」がいいみたい。
アップローダを使ったことがないので画面イメージは下記を参考にしてください。

1:2 の高さ 40
3〜  の高さ 10
A列の幅  7
B列の幅  2
C列の幅  0.5
D列の幅  2

A3:A4をセル結合、以下A5:A6、A7:A8・・・というようにセル結合
A3セルには 00:00 と文字で、以下下方向に00:15、00:30、00:45、01:00・・・と入力

B1:D1の横3列分を結合、E1:G1、H1:J1・・・というようにセル結合
同様にB2:D2、E2:G2、H2:J2・・・というようにセル結合

B1セルに'10/1を入力、B2セルに茨城を入力
C10:C25セルを黒に設定→0:45〜2:45の時間帯に黒い縦棒が現れる。

もしくは、縦棒をセルの罫線(左、右どちらか)にしてもいいかな。
横方向は同一日で複数の箇所があったら3セル分ずつ右側にずらしていけばいい。

78 :名無しさん@そうだ選挙にいこう:2008/10/11(土) 13:32:47
ちょっと質問シテクダサイ

えーとタトエバ
・Aでハジマルのかどうか

・Bでオワルのかどうか
というフタツのジョウケンをカンガミタ時
でてくるコタエは4通りあるだと思うます
それはスナハチ
1.Aではじまるダケ
2.Bでおわるダケ
3.AではじまってBでおわるダケ
4.AではじまないしBでおわらいダケ

そこでこれをEXCEL計算式にしようとしたら
コマカイ部分はハシオリますが
IF(Aではじまるか,IF(Bでおわるか,3,1),IF(Bでおわるか,2,4))
きっとこうなるますか?
シカシこの場合だと「IF(Bでおわるか,」という部分がダブルで使われているタメ
なんだかジョーチョウな気がしてします

もっと簡単な短い計算式にはならんのですか?

79 :名無しさん@そうだ選挙にいこう:2008/10/11(土) 14:49:32
Aではじまるか*2+Bでおわるか
でどう?

80 :名無しさん@そうだ選挙にいこう:2008/10/11(土) 15:48:08
>>78
>2.Bでおわるダケ
ハジマリがナイのに、オワリがアルの?
ヘンなジョウケンだね

81 :名無しさん@そうだ選挙にいこう:2008/10/11(土) 16:20:48
>>78
何がやりたいのか、数値や文字列などを具体的に書けば、いろいろな関数を組み合わせて
もっとシンプルな式にできるかもしれない。

あと読みづらい。ちゃんとした回答が欲しかったら普通の日本語で書け。

82 :名無しさん@そうだ選挙にいこう:2008/10/11(土) 16:58:45
>>66
k5をJ6に
B5=IF(AND(A5>$J$5;A5<$J$6);"|";"")
下にオートフィル。これでJ3に日付J4に地域書いて右へ右へ作っていけばいいんじゃないかな
当然この入力欄は別のところに作らないとその内かぶってしまうけど

83 :名無しさん@そうだ選挙にいこう:2008/10/11(土) 17:03:59
>>78
A1がA始まる場合B1に2を足す
A1がBで終わる場合B1に4を足す
じゃなきゃB1
なんて場合
=b1+if(left(a1,1)="A",2,0)+if(right(b1,1)="B",4,0)
って感じ
文字列だと&演算子でつなげるとか

84 :83:2008/10/11(土) 17:04:57
=b1+if(left(a1,1)="A",2,0)+if(right(a1,1)="B",4,0)
でした、失礼

85 :名無しさん@そうだ選挙にいこう:2008/10/11(土) 17:34:38
79で答え出てるのに馬鹿がウザい

86 :名無しさん@そうだ選挙にいこう:2008/10/12(日) 00:26:01
エクセル2002 ウインドウズxp で質問!

@列を選択
AダイアログBoxに文字を入れ検索
B検索にヒットしたセルの左のセルに*を入力

具体例
@’D列・F列を選択
A’ダイアログBOXに検索したい文字 イロハ を入力
B’ イロハニホ が入力されてるセルD1の左C1と
  アイロノカニ が入力されてるセルF3の左E2に*を入力

この作業のうちAとB(例はA’B’)をマクロで効率化したいと思っています。
詳しい方、コードを教えて下さい m( )m

87 :86:2008/10/12(日) 00:32:01
訂正

×・・・アイロノカニ が入力されてるセルF3の左E2に*を入力
○・・・アイロノカニ が入力されてるセルF3の左E3に*を入力

88 :名無しさん@そうだ選挙にいこう:2008/10/12(日) 04:36:40
イロハを検索してんのに、どうしてアイロノカニがヒットすんの?

89 :名無しさん@そうだ選挙にいこう:2008/10/12(日) 05:50:47
>>86
こんな感じか

Sub aaa()
 Set R = Selection.Find(What:=InputBox("検索文字列"), LookAt:=xlPart)
 If Not R Is Nothing Then
  E = R.Address
  Do
   R.Offset(0, -1) = "*"
   Set R = Selection.FindNext(R)
  Loop Until R.Address = E
 End If
End Sub

90 :名無しさん@そうだ選挙にいこう:2008/10/12(日) 12:15:45

質問です。よろしくお願いします。
OSはWin-XP ExcelのVerは2003です。


UserForm上に20前後のTetboxが配置してあります。
フォーカスの位置が分かりづらいために、Focusされている
Textboxの色を変えようとしていますが、色は変わるのですが
focusが外れた時に色を戻すことがどうしてもできません。

まずは、Textbox**_enterでFocusされたボックスの色が変わります。
入力が終わり、次のボックスへFocusが移動すると次のボックスの色も
変わりますが、元のボックスの色はそのままになってしますます。
ちなみに、Exit、及びLostfocusも試したのですがだめでした。

どなたか、ご指導いただけないでしょうか。。。。。
よろしくお願いします〜。。。。

m(__)m




91 :90:2008/10/12(日) 12:19:23

すみません。>>90 です。
一つ書き忘れてしまったので追記です。

TextboxのTabIndexは、上から順番になっていますが、
使う側が必ずも上から順に使ってもらうという想定ではないので
次のTabに移動したら色を戻す設定も失敗でした。

以上、追記です。すみません。よろしくお願いします。

m(__)m



92 :86:2008/10/12(日) 12:53:18
>>89
ご回答ありがとうございます!火曜から仕事が楽になります!

欲張りな質問で恐縮ですが
全角・半角区別なく検索し、横のセルに*をつけることは可能でしょうか?



全角または半角のイロハで検索→全角と半角のイロハにヒットし、隣のセルに*

93 :名無しさん@そうだ選挙にいこう:2008/10/12(日) 14:10:44
http://pc11.2ch.net/test/read.cgi/tech/1219673793/496

94 :名無しさん@そうだ選挙にいこう:2008/10/12(日) 20:16:32
>>70
後々のメンテナンス考えたらセルの書式だけで片付けるのがいいかも
A1からB2をひとマスと考えれば
A1からB2の全体に外枠を付けて四角形にする
B1とA2には斜線も入れる(A列とB列は列幅を同じにしておく)
文字入力はA1とB2で

後は全体の書式設定上手にやればそこそこの見栄えになる

95 :名無しさん@そうだ選挙にいこう:2008/10/12(日) 21:38:06
>>90
普通に出来るけど
例えばこんな感じ
TextBox1_Enterイベントに
TextBox1.BackColor = RGB(0,0,0)を
TextBox1_Exitイベントに
TextBox1.BackColor = RGB(255,255,255)
で出来ないかい?

96 :名無しさん@そうだ選挙にいこう:2008/10/12(日) 23:14:38
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 全く分かりません
【4 VBAでの回答の可否】 非
【5 検索キーワード     】 エクセル 列 高さ

Sheet1の1から20行までのA列とB列を罫線で囲んでいます。
1から10までは行の高さを20、11から15はに設定しています。(各セルにはデータを入力してます)
同じサイズのセルを、同一Sheet内に限界まで縦に作りたいのですが、どうすれば良いですか?
(一番左上には連番を振りたいです。)

ちなみに、コピーして貼り付けをするとデータは保持されるのですが、行の高さが保持されておりません。
「形式を選択して貼り付け」も考えましたが、もっと効率の良い方法を探してます。

よろしくお願いします。

97 :90:2008/10/12(日) 23:18:30

>>95さん ありがとうございます。

簡単なシートを別に作成してやってみました。
確かにおっしゃるとおり普通に動きますね〜。。。。
どうやら原因は当方の別にあるようです。

どうもお手数をおかけしました。何とか原因を見つけて見ます。
ありがとうございました。m(__)m



98 :名無しさん@そうだ選挙にいこう:2008/10/13(月) 00:10:30
>>96
今パソコン立ち上げてないから自信ないけど
(C列以降はデータがないとして)セルではなく行を選択してからコピー貼り付けでも駄目?

連番に関してはA1に
=(ROW()-1)/20+1

99 :名無しさん@そうだ選挙にいこう:2008/10/13(月) 00:18:22
>>96
限界まで選択して右クリック→行の高さ

100 :名無しさん@そうだ選挙にいこう:2008/10/13(月) 01:06:24
フィルタの詳細設定で、セルに指定した検索条件から該当行の抽出を行いたいのですが、

日時
2008/9/29 22:50
2008/9/29 22:55
2008/10/2 21:10
2008/10/2 23:31
2008/10/3 21:20

のような行の場合に、

日時
2008/10/*

2008/10*

のように検索条件を入力して、10月の行を抽出したいのですが、うまくいきません。
日時以外の列で違う値を指定すると抽出出来るので、
日時の検索条件に間違いがあると思い検索条件を錯誤してみましたが分かりませんでした。。
お分かりになる方おりましたら教えて頂ければ幸いです。

101 :名無しさん@そうだ選挙にいこう:2008/10/13(月) 01:15:25
>>100
日時がシリアル値なら「39722以上」かつ「39753未満」で10月が抽出できる

102 :名無しさん@そうだ選挙にいこう:2008/10/13(月) 01:20:33
>>100
シリアル値に慣れないうちは
2008/10/01以上
AND
2008/11/01未満
と打ち込んだ方がいいかも

っていうか私は今でもそうやってる

103 :名無しさん@そうだ選挙にいこう:2008/10/13(月) 01:36:58
WinXPでExcelは2007です。質問ですがお願いします。
="a"+(B1) のような感じで、A1のセルに、
先頭に指定の文字列+B1の値を入力したい場合はどうすればよろしいでしょうか。

104 :名無しさん@そうだ選挙にいこう:2008/10/13(月) 01:51:36
>>101,102
シリアル値にして検索に当たるようにする方法というのもあるのですね。
慣れない内はそのようにさせて頂きます。レスどうもありがとうございます。

105 :名無しさん@そうだ選挙にいこう:2008/10/13(月) 01:58:08
>>103
そういう場合は+じゃなくて&を使えばおK。

もしくは書式設定で"文字列"@といれても

106 :名無しさん@そうだ選挙にいこう:2008/10/13(月) 01:59:48
>>103
="a"&B1


107 :103:2008/10/13(月) 02:00:32
自己レスです。
後方では =(B1)&"a"で出来たのですが、
先頭にやる方法をご存じの方教えて下さい(´・ω・`)

108 :名無しさん@そうだ選挙にいこう:2008/10/13(月) 02:01:23
>>105,106
ありがというございます!感謝!!

109 :名無しさん@そうだ選挙にいこう:2008/10/13(月) 02:53:19
(;´Д`)ハァハァ

110 :名無しさん@そうだ選挙にいこう:2008/10/13(月) 18:48:15
質問です。A20〜A100の中にデータの入ってるセルは何件あるかを
A15に表示させたいのですが、どのように入力すれば良いでしょうか。
EXCELは2007です。

111 :名無しさん@そうだ選挙にいこう:2008/10/13(月) 18:58:51
=COUNTA(A20:A100)

112 :名無しさん@そうだ選挙にいこう:2008/10/13(月) 19:03:16
>>111
感謝です。どうもありがとうございます。

113 :77:2008/10/13(月) 19:59:36
>76  観測データのグラフ化の件
遅くなりましたが、セルを塗りつぶす方法(bV7で示したシート利用)で作ってみました。
データシートにはA列:日付、B列:観測地点、C列:観測開始時刻、D列:観測終了時刻で
2行目から記録してください。長いので2レスに分けます。
Option Explicit
Dim TATE As Long, RETU As Integer
Dim SAVE_DATE As Date, SAVE_CHITEN As String
Dim WORK_DATE As Date, WORK_CHITEN As String
Dim WORK_TM_S As Date, WORK_TM_E As Date
Dim ST_G As Excel.Worksheet, ST_D As Excel.Worksheet
Sub 図作成()
Set ST_G = Worksheets("Sheet1") 'グラフ用シート
Set ST_D = Worksheets("Sheet2") 'データシート
ST_G.Activate
TATE = 2
SAVE_DATE = 1
SAVE_CHITEN = ""
RETU = 0
Do
WORK_DATE = ST_D.Cells(TATE, 1).Value
WORK_CHITEN = ST_D.Cells(TATE, 2).Value
WORK_TM_S = ST_D.Cells(TATE, 3).Value
WORK_TM_E = ST_D.Cells(TATE, 4).Value
Call PROC1
TATE = TATE + 1
If Not IsDate(ST_D.Cells(TATE, 1).Value) Then
Exit Do
End If
Loop
Set ST_G = Nothing
Set ST_D = Nothing
End Sub

114 :77:2008/10/13(月) 20:02:02
Private Sub PROC1()
Dim TATE_S As Long, TATE_E As Long, YOKO As Integer

If (WORK_DATE = SAVE_DATE) And (WORK_CHITEN = SAVE_CHITEN) Then
Else
RETU = RETU + 1
ST_G.Cells(1, RETU * 3 - 1).Value = WORK_DATE
ST_G.Cells(2, RETU * 3 - 1).Value = WORK_CHITEN
End If
YOKO = RETU * 3
TATE_S = Hour(WORK_TM_S) * 8 + Int(Minute(WORK_TM_S) / 15) * 2 + 4
TATE_E = Hour(WORK_TM_E) * 8 + Int(Minute(WORK_TM_E) / 15) * 2 + 3
Range(Cells(TATE_S, YOKO), Cells(TATE_E, YOKO)).Select
With Selection.Interior
.ColorIndex = 1
.Pattern = xlSolid
End With
End Sub
1行目のセル書式は、日付(月/日)としておいてください。

115 :名無しさん@そうだ選挙にいこう:2008/10/13(月) 22:07:37
質問です。

A列とB列の数値を参照して
B>Aだった場合のB列のセルを装飾(塗りつぶし等)したいのですが、
どうやったらいいでしょうか?
Excelのバージョンは2007です。

116 :名無しさん@そうだ選挙にいこう:2008/10/13(月) 22:14:53
>115
セルの塗りつぶしだったら、操作の記録をしてみてどのようなマクロができるのか見ればいいですよ。
ちなみに、すぐ上の114のレスにセルの塗りつぶしのコードがあります。

117 :名無しさん@そうだ選挙にいこう:2008/10/13(月) 22:15:47
OSはビスタです。
すでに2007のExel、Wordが入っていますが、使いづらいので
以前使っていた2003のでやりたいんですが、変えられるんでしょうか?
できるのであればやり方を教えてもらえないでしょうか?
今までそういった質問はあったかと思いますが、お願いします

118 :116:2008/10/13(月) 22:41:28
>115
マクロじゃなくて、セルの「条件付書式」が簡単だった。
ヘルプで調べてみるとわかると思います。
自分はエクセル2007を持ってないので誰かお持ちの方、回答どうぞ。

119 :名無しさん@そうだ選挙にいこう:2008/10/13(月) 22:50:52
>>117
できません

120 :名無しさん@そうだ選挙にいこう:2008/10/13(月) 23:10:12
>>117
ttp://www.vector.co.jp/soft/winnt/business/se455668.html
メニューバーのことかね
有料版しか見つからなかったが、無料版があるなら俺も知っておきたいわ

121 :115:2008/10/13(月) 23:15:48
>>118
条件付き書式で出来ました。
ありがとうございました。

122 :名無しさん@そうだ選挙にいこう:2008/10/14(火) 00:34:59
1 OSの種類         .】 Windows vista
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 使えないです
【4 VBAでの回答の可否】 不可
【5 検索キーワード     】 log 対数 グラフ 表

一つの表(例えば横軸が電圧、縦軸が抵抗のような表)を用いて、
横軸が対数・縦軸も対数のグラフを作りたいのですが
レイアウト→主縦軸→対数目盛で軸を表示
で縦軸は対数のグラフにできたのですが、横軸を対数に取ることができません。

可能なやり方がわからないので、助言お願いします。

123 :名無しさん@そうだ選挙にいこう:2008/10/14(火) 01:08:06
>>122
グラフの種類を『散布図』にすれば横軸も対数に出来ますよ

124 :名無しさん@そうだ選挙にいこう:2008/10/14(火) 01:18:44
>>123
完璧です。今までただの折れ線でやってました。
ありがとうございました。

125 :名無しさん@そうだ選挙にいこう:2008/10/14(火) 05:02:07
【1 OSの種類         .】 Windows2000
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

すみません初歩的かもしれませんが
エクセルで挿入した図に○(丸)で印をつけたいのですがうまくいきません。
図形描画ツールバーの楕円を選択すると、画像がくりぬかれて楕円の中が白くなってしまいます。
しょうがないのでオートシェイプ→フリーハンドでやっているのですが、線が細くて見づらいです。
出来れば太くて赤などの目立つ線で丸で印をつけたいのですがどなたか教えていただけないでしょうか。
お願いいたします。

126 :名無しさん@そうだ選挙にいこう:2008/10/14(火) 05:18:17
>>125
その丸を右クリックして、メニューから「オートシェイプの書式設定」を選ぶ。
塗りつぶし - 色 の部分で「塗りつぶしなし」にすると、輪郭線だけになる。
線の色と太さも、同じ画面で設定できる。よく見ればわかる。

さらに、もういちど丸を右クリックして「オートシェイプの規定値に設定」を
選んでおけば、ワンタッチでいくつでも赤丸を作れるようになる。

127 :125:2008/10/14(火) 05:33:04
>>126
詳しく教えていただいてありがとうございます。
できました・・・。
助かりました。

128 :名無しさん@そうだ選挙にいこう:2008/10/14(火) 16:17:15
セル参照使ったときに
F1 F5 の値ををオートフィルで F1 F5 F9 F13 … ってしたいんだけど F1 F5 F2 F6 … になってしまう
どうすればいいんだ?

129 :GHIN:2008/10/14(火) 16:41:30
よこからすみません。
エクセル2007についての困っている事があります。
何方か教えて頂ければと思います。
ドーナッツグラフを作成した時に、系列が2つ以上ありますと2個以上の切り出しが出来ません。
2003の時には普通に手動で移動していたのですが、2007ではこの機能は無くなってしまったのでしょうか?
よろしくお願い致します。

130 :名無しさん@そうだ選挙にいこう:2008/10/14(火) 16:55:26
>>128
F9まで入れてオートフィル

>>129
ttp://office.microsoft.com/ja-jp/outlook/HA102155721041.aspx#CreateDoughnutChart
2007持ってないけどググったらすぐ出てきた
ここに載ってる情報ではできないのか?

131 :130:2008/10/14(火) 17:05:24
よく読んでみたらセル参照の場合か・・・
上は取り消す
代案として参照先を計算で出してINDIRECTを使う案を提案しとく

132 :GHIN:2008/10/14(火) 17:14:00
>>130
ご返答有難うございます。
このサイトは見させていただきました、しかし系列が1つの場合はこれで良いのですが、
2つ以上ですと、2つしか切り出せないのです。
よろしくお願いいたします。

133 :名無しさん@そうだ選挙にいこう:2008/10/14(火) 17:34:09
>>128
A1=INDIRECT("f"&1+(ROW()-1)*4)
あとは下にオートフィル


134 :名無しさん@そうだ選挙にいこう:2008/10/14(火) 18:18:01
>>128
「=F1」「=F5」みたいな式が入ってるとうまくいかないけど「F1」「F5」っていう文字列なら次は「F9」が入るから
あとで置換すればいい。

135 :名無しさん@そうだ選挙にいこう:2008/10/14(火) 19:35:56
相対参照で入力されているセルを、相対参照させずに絶対参照っぽくコピーする方法を教えてください

136 :名無しさん@そうだ選挙にいこう:2008/10/14(火) 19:49:29
>>135
ダブルクリックかF2を押して編集モードにした後、数式バーの中をコピペ
若しくは一度絶対参照にした後、「$」を「」(何もない文字列)に置換


137 :名無しさん@そうだ選挙にいこう:2008/10/14(火) 20:24:34
オートシェイプの○と棒を使って人の形を作ったとします。
これを一気に動かせるようにしたいです。方法はありますか?
これを動かそうとすると、○と棒を1つ1つ動かさないといけないです。

138 :名無しさん@そうだ選挙にいこう:2008/10/14(火) 20:27:11
>>!37
ctrl押しながら一個一個クリックしていって右クリ→グループ化


139 :137:2008/10/14(火) 20:33:31
てんきゅー

140 :名無しさん@そうだ選挙にいこう:2008/10/14(火) 21:09:30
2005-1-2
1-3
2-3
3-4
4-5

これらを全て自動的に2005として認識させるのは難しいですか?
ge.mm.ddで表示してるのですが。
入力を毎度年数入れるのは面倒くさいなあと思いまして。
そのためにセルを分けるというのもイマイチだなって思いながら結局全部手入力してるのですが。

何か賢い解決方法があるのでしょうか?

141 :名無しさん@そうだ選挙にいこう:2008/10/14(火) 21:17:40
>140
パソコンの内部時計を2005年にする。終わったら戻す。

142 :名無しさん@そうだ選挙にいこう:2008/10/14(火) 21:25:23
>>140
VBA使えば一括変換可能
VBAイベント使えば入力時に2005年に自動変換可能

詳しい環境情報(>>1★4)など書いてないので、こちらも詳しい話は伏せる

143 :名無しさん@そうだ選挙にいこう:2008/10/15(水) 00:02:00
>>140
この式を作業列に入れてオートフィルすれば一気に変換できる
=DATE(2005,MONTH(A1),DAY(A1))

144 :名無しさん@そうだ選挙にいこう:2008/10/15(水) 01:05:53
>>131,133
こういう式でできるのか。ありがとう

>>134
こっちのほうが簡単そうだけどREPLACEなのかSUBSTITUTEなのかよく分からないorz
具体的な数式書いてもらえないかな?

145 :名無しさん@そうだ選挙にいこう:2008/10/15(水) 01:28:54
>>144
検索メニューから手動で「F」を「=F」に置換すれば文字列が数式に自動的に変わってくれる。

146 :名無しさん@そうだ選挙にいこう:2008/10/15(水) 08:47:36
>>145
=if(F1="",1,0)
とか書いてあったらどうする?w
できなくはないだろうけど
数式に置換なんて使うと変更する時も面倒だと思う

147 :名無しさん@そうだ選挙にいこう:2008/10/15(水) 09:16:06
それこそ「=F1」「=F5」だけの数式なら>>134のやり方が一番早いだろうに
否定するほどの悪いやり方でもなかろう


148 :名無しさん@そうだ選挙にいこう:2008/10/15(水) 09:33:20
>>146
そもそもその式だと思ったようにオートフィルができない。最後の0がどんどん増えていくことになる。
余分な数字があるとだめだから「IF(F1="",」までにとどめてオートフィルしたあと、「,」→「,1,0)」、「I」→「=I」の順に
2回置換すればできることはできる。
べつに、置換が面倒だと思ったらROW()を使うなり作業列を使えばいいだけのこと。
臨機応変に一番手間のかからない方法を選べばいい。

149 :名無しさん@そうだ選挙にいこう:2008/10/15(水) 09:39:45
>>148
お前、あたまいいな

150 :144:2008/10/15(水) 11:57:53
できた、すげえ
何でも関数ってわけじゃないんだな。発想力が大事か
みんなありがとう

151 :名無しさん@そうだ選挙にいこう:2008/10/15(水) 12:31:22
【1 OSの種類             .】 WindowsXP
【2 Excelのバージョン    】 Excel2002
【3 VBAが使えるか      .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード       】 複数の条件に合うデータを合計する
下記のような基礎データ表があります。
曜日|店名|品名|金額
月曜|A店|食品|\500
火曜|B店|雑貨|\200
水曜|C店|食品|\250
木曜|A店|雑貨|\600
金曜|B店|食品|\800
土曜|C店|雑貨|\350
日曜|D店|食品|\200
 ・ | ・ | ・ | ・ 
 ・ | ・ | ・ | ・ 

上表の曜日・店名・品名が全て合致する項目ごとに金額を合計した下記のような集計表を作りたいのですが、どのような数式にすればよいでしょうか。
店名|品名|月曜|火曜|水曜|木曜|金曜|土曜|日曜
A店|食品|\500|   |   |   |   |   |   
A店|雑貨|   |   |   |\600|   |   |   
B店|食品|   |   |   |   |\800|   |   
B店|雑貨|   |\200|   |   |   |   |   
C店|食品|   |   |\250|   |   |   |   
C店|雑貨|   |   |   |   |   |\350|   
D店|食品|   |   |   |   |   |   |\200
 ・ | ・ | ・ | ・ | ・ | ・ | ・ | ・ | ・ 
 ・ | ・ | ・ | ・ | ・ | ・ | ・ | ・ | ・ 

なお検索した結果、「DSUM」を使えば良さそうかと思いましたが、一項目だけを検索するのではなく、上記のようにすべての項目を列記したいのでどのようにすればよいのかわかりません。
また、ピボットテーブルを使えばいいのではないかとも思いますが、ピボットテーブルに不慣れな上、実際には集計表にその他のデータも盛り込むため、ピボットテーブルはできれば使いたくありません。
よろしくお願いします。

152 :名無しさん@そうだ選挙にいこう:2008/10/15(水) 12:52:05
>>151
>>他のデータも盛り込むため、ピボットテーブルはできれば使いたくありません。

何で?
他のデータを盛り込むのがピボを使わない理由になるのか?

あと検索キーは「複数の条件」と「合計」だな。

153 :151:2008/10/15(水) 13:00:02
>>152
ピボットテーブルに不慣れだからです。
そもそも簡単なピボットテーブルを作成すること自体が良くわかってない上に、そこに他のデータを割り込ませるとなると手に負える気がしません。
なんとか関数で処理したいのです。
よろしくお願いします。

154 :名無しさん@そうだ選挙にいこう:2008/10/15(水) 13:01:27
>>151

SUMIFS はつかえるか?

155 :151:2008/10/15(水) 13:04:30
>>152
連投すみません。
>あと検索キーは「複数の条件」と「合計」だな。
これで参考になりそうなものが引っかかりました。
ありがとうございました。

156 :151:2008/10/15(水) 13:07:00
>>154
度々すみません。
「SUMIF」は使えますが、複数条件だとどうしていいのかわかりませんでした。
もし解決策があるようでしたら、参考までにお教えいただければありがたいです。
よろしくお願いします。

157 :名無しさん@そうだ選挙にいこう:2008/10/15(水) 13:09:53
慣れはあるだろうけど、たぶんピボット作ってgetpivotdata使うのが一番楽なんじゃねーかな
どーせそのまま印刷したいとかの糞レイアウト処理までやるんだろうし

158 :151:2008/10/15(水) 13:11:24
>>154
またまたすみません。
「SUMIF」ではなくて「SUMIFS」なのですね。
残念ながら2002なので使えないようです。

159 :名無しさん@そうだ選挙にいこう:2008/10/15(水) 13:55:07
条件が複数あることで躓いてるなら、条件を1つにまとめれば(連結すれば)良いだけ
「複数条件の合計を出す式」のみに執着せず、もっと多角的な考察力を付けよう

160 :名無しさん@そうだ選挙にいこう:2008/10/15(水) 14:14:00
>>151
店名(昇順)・品名(降順)で並び替え
E1-K1に月曜〜日曜
E2に=IF($A2=E$1,$D2,"")
あとは右と下にオートフィル
最後にA列を非表示にでもすればok

例程度ならいけるけど、条件が複雑になると対応できなくなりそう

161 :名無しさん@そうだ選挙にいこう:2008/10/15(水) 14:54:18
>>160
それだけでは集計できてないと思われる件
1週間分しか例を示してないけど2週間分以上あると考えてもいいのかな?

162 :名無しさん@そうだ選挙にいこう:2008/10/15(水) 17:28:08
OpenOffice.org3は、Windows98やMeには入らないのかな?
インストールしようとしたらエラーメッセージが出てしまった。

163 :名無しさん@そうだ選挙にいこう:2008/10/15(水) 17:30:04
>>162
ぐぐったら一発
OpenOffice.orgは14日、オフィススイートの最新バージョン
「OpenOffice.org 3.0」をリリースした。OpenOffice.orgの公式サイトから無償でダウンロードできる。対応OSはWindows Vista/XP/2000、Mac OS X、Linuxなど。

164 :名無しさん@そうだ選挙にいこう:2008/10/15(水) 17:30:41

【1 OSの種類         .】 Windows Vista HomeEdition sp1
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

ttp://gigabyteserver.com/uploader01/img1234/winplus.jp503.jpg
左の表からグラフを作りたいのですが、F4からG26とH4からI6までが繋がったグラフを作りたいのに
H4からI6のデータが桃色と黄色で表示されちゃっています。
なんとかなりませんか。

165 :名無しさん@そうだ選挙にいこう:2008/10/15(水) 17:44:27
>>165
H4-I6をF27の下にコピー、F27以下非表示にでもするしかない



166 :名無しさん@そうだ選挙にいこう:2008/10/15(水) 17:49:26
>>165
1行じゃなきゃだめなんですね。
わかりましたありがとうございます!

167 :名無しさん@そうだ選挙にいこう:2008/10/15(水) 17:57:03
>>151
めんどくせーけど「DSUM」なんてのもあるよ
なれれば便利な関数なんだけどね

168 :名無しさん@そうだ選挙にいこう:2008/10/15(水) 18:25:32
インターフェースが改悪されてなきゃ2007を勧めるんだけどなあ。
SUMIFの複数条件対応とか便利に強化された関数も多いし。

169 :名無しさん@そうだ選挙にいこう:2008/10/15(水) 18:26:59
DSUMはクリテリアつくるのがめんどうだから
SUMPRODUCTつかうことがおおい でも遅い

170 :名無しさん@そうだ選挙にいこう:2008/10/15(水) 19:06:02
エクセル2000
vba 勉強中
エクセル初心者

セルA1=A社 セルA2=☆☆
と書いてあった場合に(A社.xls)ファイルを作りセルA2の内容を書き込む
(A社.Xls)ファイルが有る場合は上書き
この作業をVBAでやりたいので教えて下さいお願いします。

171 :名無しさん@そうだ選挙にいこう:2008/10/15(水) 19:57:36
>170
「新しいマクロの記録」は試してみましたか?
1 ファイルの新規作成
2 セルを指定して☆☆を入力
3 ファイル名を指定して保存(ファイル名はA社.xls)
後は2の部分と3のファイル名の部分をセル内容からもってくるようにマクロを変更。
ファイル名重複したら確認ダイアログが表示されるだろうけど、[置き換える]を
選べばいいだけの話。(プログラムで確認ダイアログを出さないようにもできる)
なお、マクロを記録するブックは新規ブックではない方がいいですね。

172 :名無しさん@そうだ選挙にいこう:2008/10/15(水) 20:57:46
【1 OSの種類         .】 Windowsxp
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

エクセルで書いた文章を印刷しようと、プレビューを見たのですが
次ページに「。」が一つだけあり、消そうとエクセル画面に戻ったのですが
どこにも見当たりません
どうやって消せば良いのでしょうか?
ページ設定等で印刷に出ないように出来ますが、毎回そのページだけ飛ばすのが面倒です。
どなたか教えて下さい。


173 :名無しさん@そうだ選挙にいこう:2008/10/15(水) 21:00:17
>>172
下の余白を広げる

174 :名無しさん@そうだ選挙にいこう:2008/10/15(水) 21:01:14
[F5]→"セル選択"→"定数"→OK
でどない?

175 :名無しさん@そうだ選挙にいこう:2008/10/15(水) 21:02:30
>172
印刷プレビュー ではなく、メニューの 表示−改ページ プレビュー は見ましたか?

176 :名無しさん@そうだ選挙にいこう:2008/10/15(水) 21:30:31
言葉足らずですみません
「。」はプレビュー次ページの真ん中くらいにあります

>>174青くなるだけで解決しませんでした
>>175見ましたが、引っ張ってもページ数が増えるだけで解決しません
お願いします

177 :名無しさん@そうだ選挙にいこう:2008/10/15(水) 21:40:24
そのシートでCtrl+Aで全てを選択してDelのあと少しだけデータを書いてプレビューすると
どうなるだろう?

178 :175:2008/10/15(水) 21:43:19
>176
1 本来の印刷頁数は1頁だけになるはずが、2頁になるということですか?
2 "。"がひとつだけ、ということならば、検索で"。"を探したらどうですか?
3 ひょっとすると文字ではなく、図形の○かもしれないので図形描画にして広い範囲をドラッグ
 してみてください。なにか図形が「ひっかかり」ませんか?
4 印刷したい範囲が決まっているのであれば、印刷範囲をドラッグで指定したうえで、
 メニューの ファイル − 印刷範囲 − 印刷範囲の設定 をしたらどうですか?


179 :名無しさん@そうだ選挙にいこう:2008/10/15(水) 21:45:07
>>176
「ページの真ん中」ってのは色々と解釈できるけど、上下?左右?
┌────┐
│    1 .  │
│        │
│        │
│2   3   │
│        │
│        │
│        │
└────┘どこ?

180 :名無しさん@そうだ選挙にいこう:2008/10/15(水) 22:22:03
>>177 「。」は消えますが文も消えます。
>>178
@はい
A検索って右上の質問枠のところを使うのでしょうか?(素人過ぎてごめんなさい)
そのページには一つですが文全体にはたくさん使用してます。
B「図形描画にして」ごめんなさい分かりません
C印刷のときはその様にしてるのですが、毎回めんどうなので、できれば消したいです

>>179 2番の位置です

レス時間がかかってすみません。ひとつひとつ試すのに時間がかかってしまうので

181 :名無しさん@そうだ選挙にいこう:2008/10/15(水) 22:29:49
>>180
その丸を印刷したときの直径は何ミリ?色は黒?

182 :178:2008/10/15(水) 22:33:09
>180
2番の位置です。でわかった。
エクセルの昔からの不具合で、見た目はセル内に収まっているのに、印刷するとはみ出る というのがある。
今回はまさしくそれです。
セル枠(右端)ぎりぎりに 。 がある文章のどこか1文字だけでも削ってみてから印刷プレビューを見てください。
今度は1頁に収まるはず。

183 :名無しさん@そうだ選挙にいこう:2008/10/15(水) 22:37:46
またバカがExcelで書類印刷しようとしてるのか

184 :名無しさん@そうだ選挙にいこう:2008/10/15(水) 22:38:46
皆さんド素人の自分へのアドバイス有難うございました
>>181さんのヒントで解決しました。

結果は句点でしたが、横へのはみ出しが原因でした。
(エクセル画面上では点線内に収まってる)
皆さん本当にお世話になりました。

185 :178:2008/10/15(水) 22:41:00
続きです。
1文字けずってもしかたがないので、
A 右余白をぎりぎりまでせばめる
B 印刷範囲のセルの幅を少し広げる
(印刷範囲がA列からG列までだったとしたらG列の幅を少し広げるということ)



186 :名無しさん@そうだ選挙にいこう:2008/10/15(水) 22:44:26
>>178追記有難うございます
全てうまくいきました

>>183わかってるけど言い過ぎw

187 :名無しさん@そうだ選挙にいこう:2008/10/15(水) 22:48:07
関数の質問です


あるセルに

セルA.1 私の名前は西村博之です
セルA2 私の名前は西村博之2です

とあります

そこから私のと です。削除して

西村博之
というのを取り出したいのですが
そういう関数はありますか?

188 :お願いします:2008/10/15(水) 22:48:49
A3にできた変数をA3100000までコピペしたいんですがドラッグだけでは
とんでもない時間がかかります。なんとかならないでしょうか。

189 :名無しさん@そうだ選挙にいこう:2008/10/15(水) 22:54:51
>>187
=SUBSTITUTE(SUBSTITUTE(A1,"私の名前は",""),"です","")

190 :名無しさん@そうだ選挙にいこう:2008/10/15(水) 22:54:54
>>188
ctrl + G

191 :名無しさん@そうだ選挙にいこう:2008/10/15(水) 22:57:17
>>188
不可能です。
Excel2000〜2003ではA1〜A65536まで、Excel2007ではA1048576までしかセルがありません。

192 :名無しさん@そうだ選挙にいこう:2008/10/15(水) 23:00:48
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 Excel タブ シート 位置 "上に"

シートタブの位置を上に変更したいのですができますか?
(ブラウザのタブのように上に持って行きたい)

193 :188:2008/10/15(水) 23:07:58
質問の仕方が悪かったので訂正します

A3にできた変数を A4 から A100000 までコピペしたいんですがドラッグだけでは
とんでもない時間がかかります。なんとかならないでしょうか。
excel 2007です


194 :名無しさん@そうだ選挙にいこう:2008/10/15(水) 23:14:33
>>188
VBAなら

sub main()

for i = 0 to 10000

cells(i,,"A").value = cells(i1,"A").value

next i

end sub()

マクロ→ビジュアルベーシックエディタ
追加(だったかな) →新規モジュール
これをこぴぺ  →再生マーク
右上の罰で閉じるとエクセルが面に戻る

195 :名無しさん@そうだ選挙にいこう:2008/10/15(水) 23:15:54
>193
当方エクセル2003なので2007とはちょっと違うかもしれないけど

1 A3セルをコピー
2 名前ボックス(セル位置が表示されているところ)にA4:A100000と入力してEnter
 →A4:A100000まで選択された状態になる
3 メニューの編集−形式を選択して貼り付け−値or計算式(お好きなように)


196 :195:2008/10/16(木) 00:01:25
今頃193さんは194さんのマクロを動かそうと悪戦苦闘してるのかな?
Cellsの指定の仕方も、ループ変数が0から始まっているのも、End Sub()も・・・

197 :193:2008/10/16(木) 00:23:31
>>196さん

正解です・・・悪戦苦闘しています。>>195のやり方は2007では
できませんでした。

198 :名無しさん@そうだ選挙にいこう:2008/10/16(木) 00:30:43
正しくは効果?

sub main()
’一番目から1000番目までの変数を作る
for i = 2 to 10000
’A1の値をiの変数版目のA列のセルに入れる
cells(i,,"A").value = cells(1,"A").value

next i

end sub

正しく入ってると所々大文字になるはず
試してはないけど

199 :名無しさん@そうだ選挙にいこう:2008/10/16(木) 00:52:32
EXCEL2007で前バージョンで使える色(セル背景色)がさくっと
選べるテーマってないでしょうか。
色つけただけで互換性云々と前バージョン形式での保存のたびに
出て嫌になってきます。

200 :名無しさん@そうだ選挙にいこう:2008/10/16(木) 01:58:40
WIndowsXP EXCELL2000で最近エクセルの勉強を始めました。

---年-----月-----日付----------
----A-----B-------C-----------------P----------Q----------
4 <2000> <1> <2000/1/1>--------<2000/1/1>
5 <2000> <2> <2000/2/1>--------<2000/2/1>
6 <2000> <3> <2000/3/1>--------<2000/3/2>

A4=年、B4=月を初期値としてP列の毎年1/1をスタートにしたいのです。
つまり2000年2月がスタートなら翌年の2001/1/1になるようにしたいのです
2000年1月スタートで試行錯誤してP列に目的の日付を何とかして作りました

B4=1で1月スタートなら問題ないのですが、B4の月を1月以外(例えば2月)にすると、
P列の翌年以降の1月の日付が<2001/1/2><2002/1/2>…になりました
いろいろと試行錯誤すると、
B4の初期値が1,9,11月の場合は Q4=P4のまま
B4の初期値が2月の場合は Q4=P4-1 (P列に表示される日付の1日前)
B4の初期値が3〜8,10,12の場合は Q4=P4+1 (P列に表示される日付の1日後)
となれば、P列は毎年1/1のスタートに出来ることまでは分かりました。

以上の条件を満たす日付をQ列に作りたいのです。
IF IFの条件分岐を使えばいいのだろうと思いますが、条件が複雑すぎて
これ以上は分かりません。
どうかお願いします

201 :名無しさん@そうだ選挙にいこう:2008/10/16(木) 02:10:59
>>199
2007でテーマに自分で設定できる色は12色、ただし、そのうち6色は変更しない方がいいので
設定できるのは事実上6色だけになります。
つまり、前のバージョンと互換性のある色をすべてセットしておくことはできません。

回避策としては、VBAでパレットを調べて近い色に置き換えるぐらいでしょうか。

202 :名無しさん@そうだ選挙にいこう:2008/10/16(木) 02:27:32
>>200
何がやりたいのか質問の意味がまったくわからん。
そこに書いてある表は、現在の、うまくいってない状態?
だとしたら、どうなって欲しいのか、自分の希望する完成した状態を書いてくれ。

203 :名無しさん@そうだ選挙にいこう:2008/10/16(木) 02:35:31
>>200
もしかして、こうか?

P4に入れる式 =DATE(A4+IF(B4>1,1,0),1,1)

204 :200:2008/10/16(木) 02:49:28
2000/1/1スタートで目的の日付を作りました。それがP列です
これでいいと思ってスタートを2月にしたら、2001/1/2になってしまいました
いろいろと試すと「年」は関係なく「月」だけで3パターンあることが分かりました。
なせこうなるのかは分かりませんが、今はこれが限界なのでこの3つを
B4の条件できりかえてQ列に表示したいのです

2月スタートの場合
----A-----B-------C-----------------P----------Q----------
4 <2000> <2> <2000/1/1>--------<2000/2/1>
5 <2000> <3> <2000/2/1>--------<2000/3/2>
6 <2000> <4> <2000/3/1>--------<2000/4/1>

14 <2000> <12> <2000/12/1>--------<2000/12/2>
15 <2001> <1> <20001/1/1>--------<2001/1/2>←こうなって+1になります
16 <2001> <2> <20001/1/2>--------<2001/2/2>←

205 :名無しさん@そうだ選挙にいこう:2008/10/16(木) 02:56:36
>>204
今、C4とP4には、それぞれどんな式が入ってるのか書いて。

206 :名無しさん@そうだ選挙にいこう:2008/10/16(木) 03:02:12
Excelの前に日本語覚えた方がよくねえか?

207 :名無しさん@そうだ選挙にいこう:2008/10/16(木) 03:11:35
C列はDATE(A4,B4,1)で、そこから右は1ステップずつ横に移動して使えそうな
情報として偶数/奇数月、うるう年を判定して、試行錯誤してP行になりました

概算で金利の計算をしたいのです。
ただ計算するだけなら毎月1日で構わないのですが、今は関数の勉強をかねて
1年が365日366日を1/1基準で31日後、29(うるう年は30日後、31日後、30日後…
として1年をなるべく均等に12等分したいのです

C列は表面的に出す数字で、実際の計算の日付は12等分したP列でと思いました。
同じ金額を借りても1/1と2/1のスタートでは翌月以降の利息が違うので
1年をなるべく均等にした方がいいかなと

概算での計算なのでこんなことをしても無意味なのは分かりますけど、
せっかく思いついたので何とかしてみたいのです

208 :名無しさん@そうだ選挙にいこう:2008/10/16(木) 03:23:59
>>207
やっと何がやりたいのかわかったよ。
Q4に入れる式
=P4+CHOOSE($B$4,0,-1,1,1,1,1,1,1,0,1,0,1)

209 :名無しさん@そうだ選挙にいこう:2008/10/16(木) 03:29:06
いや、こうかな?
=P4+IF(YEAR(P4)>$A$4,CHOOSE($B$4,0,-1,1,1,1,1,1,1,0,1,0,1),0)

210 :名無しさん@そうだ選挙にいこう:2008/10/16(木) 03:31:08
>>208
どうもありがとうございました


211 :名無しさん@そうだ選挙にいこう:2008/10/16(木) 03:37:15
>>207
いや違う。補正するのは翌年以降の1月だけか。
=P4+IF(AND(YEAR(P4)>$A$4,MONTH(P4)=1),CHOOSE($B$4,0,-1,1,1,1,1,1,1,0,1,0,1),0)

212 :名無しさん@そうだ選挙にいこう:2008/10/16(木) 03:38:09
>>210
早まるな
208と209はたぶん間違ってる

213 :名無しさん@そうだ選挙にいこう:2008/10/16(木) 03:46:38
>>212
>>208で翌年以降は1/1のスタートになるのが分かりました

これで何か問題があればあれば、また隣の列以降で何とかしてみます



214 :名無しさん@そうだ選挙にいこう:2008/10/16(木) 04:22:48
今確かめてみましたが全然違ってました
>>207
適当に答えるのは止めてもらえませんか?

215 :名無しさん@そうだ選挙にいこう:2008/10/16(木) 04:48:05
微弱な電磁波が…

216 :195:2008/10/16(木) 09:11:25
>197
いくらなんでも、2003と2007でこんな基本的なところができないはずはない。
↓はマイクロソフトのエクセル2007の基本の説明ですが、ちゃんと名前ボックスがあります。
http://office.microsoft.com/ja-jp/2007/FX102135051041.aspx
(A列のすぐ上、A1と表示されているところ)
ここに A4:A100000 と入れれば、この範囲のセルが選択状態になるはず。
ひょっとすると、メニューがリボンに変わっているのでとまどっているのかな?
↑の頁に「貼り付け」ってでているので、▼をクリックしたら「形式を選択して貼り付け」って
出ませんか?

217 :名無しさん@そうだ選挙にいこう:2008/10/16(木) 09:23:05
2007で試してみたら>>195さんのやり方で出来ましたよ

218 :162:2008/10/16(木) 09:45:53
>>163
投稿するスレッドをおもいっきり間違えてしまったみたい。恥ずかしい。
にもかかわらずお答えくださって、どうも有難うございました。

219 :名無しさん@そうだ選挙にいこう:2008/10/16(木) 10:05:07
はい皆さん注目ー!質問ですよー!
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 セル内 文字列 数える
数える関数はいろいろありますが、そのどれもがセルの数を数える関数になっていて
ひとつのセルの中に指定文字列がいくつあるかを数えることができません・・・

たとえばA1に12000000340000001200000012000000と入力してあった場合に
「12」がいくつあるか(この場合3個)を求めたいんです
もちろん作業列や作業行や作業シートなど使っても構いません
が、12じゃなくても任意の文字列の数が数えたいです
関数だけでできないでしょうか?

220 :名無しさん@そうだ選挙にいこう:2008/10/16(木) 10:32:02
>>219

関数じゃしんどくないかい?
VBAならなんとか出来そうだが・・・

221 :名無しさん@そうだ選挙にいこう:2008/10/16(木) 10:45:48
>>219
A2に探す文字があるとして
=(LEN(A1)-LEN(SUBSTITUTE(A1,A2,"")))/LEN(A2)

222 :名無しさん@そうだ選挙にいこう:2008/10/16(木) 10:51:09
>>219
「1111」に「11」が3個含まれてるとしたい場合は
=SUM(IF(EXACT(MID(A1,ROW(INDIRECT("A1:A"&LEN(A1)-1)),LEN(A2)),A2),1))
でCtrl+Shift+Enter

2個としたい場合は
=(LEN(A1)-LEN(SUBSTITUTE(A1,A2,"")))/LEN(A2)

どちらも検索したい文字列(12)はA2にあるものとする


VBAならSplitしてUBound調べれば一発だな
InStrをループで回したほうが確か速かった気もするが、Splitの方が手軽

223 :困っています。:2008/10/16(木) 11:13:48
教えてください。

仕事でエクセルを使用していますが、URLやメールアドレスの入力では無いのに、
勝手にハイパーリンクが入ってしまいます。

ネットでも色々調べましたが、URLやメールアドレスを入力すると勝手に
ハイパーリンクが入る件については対処法が有りますが、空白のセルにも
ハイパーリンクがいつの間にか入っています。

全部のセルに入る訳でも無く不規則に入ります。
(空白セルに入ったり既に入力済みのセルに入ったり)
調べてみますとリンク先は全て同じ様です。
そのセルをクリックするたびにリンク先が開いてしまい困っています。

新しいブックを開いた時は、もちろんハイパーリンクは一切入っていませんが、
作業を進めるうちに、またいつの間にかハイパーリンクが入っています。
対処法をご存知の方、是非ともお教えください。

宜しくお願い致します。

224 :名無しさん@そうだ選挙にいこう:2008/10/16(木) 11:20:20
>>223
前に誰かが作ったシートからデータだけ削除して再利用してるのでなければ、マクロかウィルス。
ウィルスなら、そのリンク先のURLで検索すれば情報が得られるかもしれない。
自分の仕事に関係のあるアドレスならマクロの誤作動か、存在を忘れてる。

225 :困っています。:2008/10/16(木) 11:31:17
224様
ご回答有り難う御座います。
リンク先は仕事に関係のあるアドレスです。
ただ、シートからデータを削除しての再利用では無く、
全く新しいブックで使用しても、いつの間にか同じ現象になります。
マクロの誤動作・・・
その誤動作をしない様にするにはどの様にすれば良いのでしょうか?
すみません。勉強不足で。
どうぞ宜しくお願い致します。



226 :名無しさん@そうだ選挙にいこう:2008/10/16(木) 11:40:27
まずはエクセルのバージョンを書け

227 :困っています。:2008/10/16(木) 11:50:24
エクセルのバージョンは2002です。

228 :名無しさん@そうだ選挙にいこう:2008/10/16(木) 11:56:55
>>225
いつの間にかってことはマクロだった場合ショートカットかが登録されてるかもしれないな・・・
とりあえずAlt+F8でマクロの一覧出して
マクロがあるなら1つ1つ選択→オプションを繰り返してショートカットがないか確認する

VBAを弄ることになるなら組んだやつに聞きながらやる必要があるし
下手なことは言えん

229 :219:2008/10/16(木) 13:43:07
>>221さん、>>222さん
ありがとうございます!
その関数を見るだけで目からうろこが落ちるようです
そういう工夫があるんですね

ついでといっては申し訳ないのですが
任意の文字列が連続している最大or最小の個数というのは無理でしょうか?
たとえば1212121200000000123400001212から「12」は
最大で4連続、とか、最小で1連続(単品がある)、とか
関数ではもはや限界でしょうか・・・

230 :名無しさん@そうだ選挙にいこう:2008/10/16(木) 14:05:46
>>229
=MAX(IF(ISNUMBER(FIND(REPT("12",ROW(INDIRECT("A1:A100"))),A1)),ROW(INDIRECT("A1:A100"))))
でCtrl+Shift+Enter

これで最大100連続まで検索する
2カ所ある「A1:A100」の「100」が検索する最大連続回数なので、必要に応じて書き換えるように
このままでは120連続でも100という結果になるが、あまり大きくしすぎても式が重くなる

231 :>>170:2008/10/16(木) 15:13:14
>>171さん
回答ありがとうございます
「マクロの記録」ってイジレるんですね(;´д`)知りませんでした…試してみます


232 :171:2008/10/16(木) 18:12:23
>170,231
新しいマクロの記録を行うと、通常、標準モジュール1に記録されます。以降、別の新しいマクロの記録をしても
標準モジュール1に記録されます。
1 新しいマクロの記録をしてみる。
2 [ctrl]を押しながら[f11]キーを押すと、Visual Basic Editorの画面が表示されるので、Module1をダブルクリック
  →マクロの中身が表示される
3 ActiveCell.FormulaR1C1 = "☆☆" と表示されているところを、
  Range("A1").Value = Range("A2").Value に変更 ※左辺の"A1"は実際に値を入れたいセルのアドレスを指定する。
  マクロの記録では ActiveCell.FormulaR1C1 = という表現になってしまうので、こういう風に変えること
4 1行目のSub Macro1() の Macro1 はマクロ名であり、変更出来ます。(途中に空白は入れないこと、日本語でも可)
  実際に何をするマクロなのかをわかるようにしておいた方が後から便利。

233 :名無しさん@そうだ選挙にいこう:2008/10/16(木) 18:18:42
>>232
VBEの起動はCtrl+F11じゃなくてAlt+F11では

234 :名無しさん@そうだ選挙にいこう:2008/10/16(木) 18:25:08
>>232
マクロの操作
Alt + F8
[マクロ] ダイアログ ボックスを表示する。
Alt + F11
Visual Basic Editor を起動する。
Ctrl + F11
Excel 4.0 の新規マクロ シートを挿入する。

くどいようだけどしっかり突っ込むw

235 :171:2008/10/16(木) 18:39:06
>233,234
失礼しました。

236 :総務2年生:2008/10/16(木) 19:06:16
こんにちわ
毎日何百通も見積書を作るのが大変です

    A    B   C   D    E

1  得意先名  品名  数量  金額  

2  釜a田元  組立  一式  2000  【作成】

3  アカマツ  解体  一式  1000  【作成】

4  ====  ==  ==  ====  【作成】
======================================================
以上のようなワークシートのE列のような作成ボタンを押すと
その行の内容が以下のような別シートに見積書として反映される
方法を教えてもらえないでしょうか?
どうかよろしくお願いします!!
======================================================
        お見積書
釜a田元御中
               ○○○○
               担当 山田
合計金額 2,000円
~~~~~~~~~~~~~~~~~~
 内訳
「品名」組立 「数量」一式

237 :名無しさん@そうだ選挙にいこう:2008/10/16(木) 19:29:37
見積番号をつくって、別シートの見積書にVLOOKUPで参照する

238 :名無しさん@そうだ選挙にいこう:2008/10/16(木) 20:46:57
>>236
ボタンを押したら何かするってのはVBA使わないと無理だけどVBAはわかる?

239 :名無しさん@そうだ選挙にいこう:2008/10/16(木) 21:19:20
>236
VBAを使わずに同じようなことをするためのヒント:INDIRECTを利用する。
Sheet1にデータ一覧があり、Sheet2を見積書イメージとする。
(2行目からデータが記録されているものとする)
Sheet2のA1セルに印刷したいデータのある行を設定する。(例として2を入れておく)
Sheet2のA3セルあたりに、以下の計算式を入れる
=INDIRECT("Sheet1!A"&$A$1)&""
そうすると、Sheet2のA3セル(計算式を入れたセル)に 釜a田元 と表示される。

Sheet2の1行目を印刷範囲にせず、2行目以降を見積書のように作成すると、左上隅の
A1セルに入力した番号に対応した行位置のSheet1のデータを引用できる。
品名を表示したいところは=INDIRECT("Sheet1!B"&$A$1)&""のように!の後のアルファベット
を列名のアルファベットと同じものを指定する。

実際に印刷するにはA1に番号を入れては印刷、を繰り返せばいい。

御中を付けたければ、計算式の末尾の 〜&"" の""を" 御中"に変えればいいし、金額
のところは &""をはずしたうえでユーザー書式設定をするといい。
計算式の末尾に&""を付けるのは、データが欠落している場合に0を表示させないために
文字列にするためのものなので、A〜D列すべてデータがある場合は不要。


240 :名無しさん@そうだ選挙にいこう:2008/10/16(木) 21:28:55
とりあえず、質問者はテンプレ使え

241 :総務2年生:2008/10/16(木) 21:33:29
お返事ありがとうございます!!
>>237
ありがとうございます
勉強のとっかかりができました
>>238
VBAですか、「やさしくわかる関数・マクロ」を読み始めたばかりです
>>237さんの教えてくださったVLOOKUPと組み合わせるんでしょうか?

242 :239:2008/10/16(木) 21:49:56
>241
なんか無視されたみたいだけど、239の方法にA1セルの数字をUP、DOWNするボタン2個
加えて、ボタンで簡単なマクロを動かすこともできます。自分はハガキの宛名印刷を
これでやってます。ちなみに数字をUPさせるボタンのコマンドはこれ。
Private Sub CommandButton1_Click()
With Worksheets("Sheet2")
.Range("A1").Value = .Range("A1").Value + 1
End With
End Sub


243 :名無しさん@そうだ選挙にいこう:2008/10/16(木) 22:20:30
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 少し
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 Googleやヘルプでの検索キーワード 重複

困っております、教えを乞いに参りました。
シート1に下記のデータがあります(実際は1,000行ほど)。
__A_|__B__|
500_|_東京
700_|_東京
700_|_東京
700_|_埼玉
ざっくりいって重複をなくしたいのですが少々条件がありまして、上の図でいうと
1、2(3でもいいわけですが)、4行目を残したいのです。データを色々と加工していくマクロの
一部分なんですが、初めA列の重複だけを考えればよいと言われ、Dictionaryのキー(がユニーク
じゃないとエラーがでる)を使ってたんですが、B列も考慮に入れることになったのです。
つまり、同じ700でも東京と埼玉があれば同一とはみなさずどちらも残す、という条件がつきました。

今は、シート1をループでなめていって、1行目(500,東京)は初出なので
シート1には何もしない、2行目(700,東京)は初出なので何もしない、3行目(700,東京)は
既出なのでこの行削除、4行目(700,埼玉)は初出なので…とやっています。800行目にまた
(700,東京)が出るかもしれなく、そのとき既出かどうか判断するために、隠しシート2に
__A_|__B__|__C_|
500_|_東京|____
700_|_東京|埼玉
といった表をつくって、これを参照して、とかしていますが、作っていて効率が悪いというか
カッコ悪いコードだなあと感じてしまいます。削除行を配列でもって後ろから削除していく、の
ほうが速いのかとも思いましたが、根本的な重複チェックの仕方が洗練されてないという悩みです。


皆さんならどういう解法をとられますか。ご教示ください、お願いします。

244 :名無しさん@そうだ選挙にいこう:2008/10/16(木) 22:30:53
>>241
VBAの場合はVLOOKUP使う必要はない
あと、そういうのをVBAでやる場合は、ボタンをズラーっと並べるより
Worksheet_BeforeDoubleClickイベントでも使う方がスッキリするよ

その本はVBA勉強するにはちょっと浅いけど、この程度のことならその本の知識だけでもどうにかなるだろ

>>243
>>159とかDictionaryを二段構えにするとか、隠しシート使う方法を
隠しシートではなくDictionaryと配列にするとか

245 :総務2年生:2008/10/16(木) 22:40:45
>>239
>>242
ごめんなさい すいません 申し訳ありません
>>237さんと>>238さんのアドバイスに沿ってググッたり本を開いたりしていてレス(書き込み)までのタイムラグがあったみたいです
決して無視するなんてもったいないことはしませんから!!!!!!!!
寝る前に開いたらビックリしました
かってなんですが明日は3時半に起きないといけないので勉強は明日にします


246 :名無しさん@そうだ選挙にいこう:2008/10/16(木) 22:43:15
>>243
C1に=A1&B1と入れてCtrl押しながらオートフィル。C列から重複行を削除。必要なら最後にC列を削除。
ttp://office.microsoft.com/ja-jp/excel/HA010346261041.aspx

247 :名無しさん@そうだ選挙にいこう:2008/10/16(木) 22:47:48
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 凡例 一部非表示

A,B,Cという要素をグラフにプロットするのですが、凡例にはCは表示させず、ABのみを表示させるには
どのようにすればよいかご教授ください。

248 :名無しさん@そうだ選挙にいこう:2008/10/16(木) 22:49:58
消したい凡例を右クリックしてクリアを選択

249 :名無しさん@そうだ選挙にいこう:2008/10/16(木) 22:53:21
>>248
こんな簡単な・・・ありがとうございました

250 :名無しさん@そうだ選挙にいこう:2008/10/16(木) 22:55:33
>243
246さんではありませんが、
246の処理にもうちょっと追加をしてより便利に。
もうひとつ作業列(D列)を追加、データが2行目からあると仮定して
D2列には=IF(D2=D1、"重複"、"")と入力して下へコピー。
2行目からデータ最下行までをC列をキーとしてソートすると、重複行のD列に
重複と表示される。
あとは簡単なマクロで重複行を削除することができる。

251 :名無しさん@そうだ選挙にいこう:2008/10/16(木) 23:01:39
>>250
そんなに作業列を増やさなくても
C1=(A1&B1)=(A2&B2)
だけでいいじゃん。で、TRUEを削除。

252 :名無しさん@そうだ選挙にいこう:2008/10/16(木) 23:10:33
>251
A列とB列でソート済みの状態に最初からデータが並んでいる(もしくは並べ替えをしてから)
という前提ならばYESでしょうが、243さんの質問には並びのことは(少なくともA列を除
いて)書かれていません。


253 :名無しさん@そうだ選挙にいこう:2008/10/16(木) 23:13:50
>>243をよく読むと、元のデータはソートされてない。(800行目にまた… と書いてある)
よって>>250>>251も使えない。

254 :250:2008/10/16(木) 23:18:20
>253
250をよく読んでください。

2行目からデータ最下行までをC列をキーとしてソートすると

って書いているんですけど。

255 :名無しさん@そうだ選挙にいこう:2008/10/16(木) 23:24:27
>>254
ソートすれば処理が簡単になるのに、質問者はソートせずに別リストをわざわざ作ったり、かなり苦労している。
つまりデータの並び方に意味があるってことだから、勝手にソートしちゃまずい。

256 :250:2008/10/16(木) 23:29:09
>255
では、もうひとつ作業列をつくっておいて、ソート前の状態で一連番号を振っておいて
重複行削除の後に一連番号の列をキーとしてソートすればいいですね。
ところで243さんは見ているのだろうか?

257 :名無しさん@そうだ選挙にいこう:2008/10/16(木) 23:34:31
ソート前提ならA列B列でソートして>>251のが簡単だな

258 :243:2008/10/17(金) 00:00:21
皆様、レスありがとうございます!

>>>159とかDictionaryを二段構えにするとか、隠しシート使う方法を
>隠しシートではなくDictionaryと配列にするとか
私の頭では無理そうですが、ふさわしい状況がきたときに使えるようになっておきたいと思います。
こういう方法がある、という引き出しが増えてありがたいです。

あとオートフィル的な部分、すっかり忘れておりました。
当初のA列だけ考慮に入れるマクロがほぼ出来たところで仕様追加になったので、なんとかそれを
改造して簡単に済ませようとして逆にはまってしまいました。

教えていただいた方法を、私の引き出しに入れさせていただきます。
ありがとうございます。
このスレのやり方のほうが早いですね。その方針でやってみたいと思います。

>ソート前の状態で一連番号を振っておいて
これいいですね。
後出しになってしまい申し訳ないのですが、>>243の最初の表はいくつかの事業所の表を
追加していったもの?なんです。で、並びを崩さないで、と言われていたというのを書き忘れてしまいました。
すみません。本当は数字の意味を知った上で自動化しなければいけないのは分かっているのですが。

なんで並びを崩さないほうがいいのかとかをヒアリングして作ればいいのでしょうが、依頼者が面倒な人
なのでもう言われたままに作って早いところ渡してしまいたいというのがありまして…。

本当にレスありがとうございました。参考にさせていただきます。

259 :名無しさん@そうだ選挙にいこう:2008/10/17(金) 00:08:40
>>243 スレ違いですがもしAccessが使える環境ならAccessにインポート、クエリでdistinctかけて、そのクエリをExcelに出力で終わり。Excelオンリーなら………


スマンが、がんばって下さい

260 :243:2008/10/17(金) 00:16:12
>>259
おおお…(羨)
がんばります。
#DBには興味を持っており勉強を始めたところです。
会社では使えないでしょうが自分のために

261 :197:2008/10/17(金) 00:27:55
>>216さん >>217さん

できましたできました。皆さんに感謝感謝です!


ついでにもうひとつ聞きたいのですが、変数を作るとき、「=」を入力するためには
「Shift+ほ」をクリックするしかないのでしょうか。「=」の入力もかなり面倒で
参ってます




262 :名無しさん@そうだ選挙にいこう:2008/10/17(金) 00:36:10
>>261
残念ながらそれしかありません。
解決策としてはUSBテンキーで「=」キーの付いたタイプを探す、ぐらいかなあ。

ところで「=」で始まるのは変数じゃなくて数式、キーボードの操作はクリックじゃなくてタイプですよ。

263 :名無しさん@そうだ選挙にいこう:2008/10/17(金) 00:39:43
補完だかオートコンプリートだか今手元にエクセルがないのでわかりませんが
私は「..」(ピリオド2つ)で「:」を出しいます。

264 :名無しさん@そうだ選挙にいこう:2008/10/17(金) 01:25:40
>>261
VBA使っても良いなら、任意のキーを=入力に出来るし
外部のキーカスタマイズソフトでも同様のことが出来る

因みに自分は、ノートでVN-350という=キー付きのテンキーを使ってるが
Excelの数式の場合、メインキーボードの=(Shift & -)使う方が多いな
=の後が数字ならテンキー側使いもするが、=の後は参照にしろ関数にしろ英字始まりだから

>>263
オートコレクトね
オートコンプリートは補完でオートコレクトは補正
でも、時刻入力の場合の「..→:」は、それによって「全てテンキーで入力できるようになる」という利点があるが
数式の場合はそうもいかないからオートコレクト使う利点はあまりないような

265 :名無しさん@そうだ選挙にいこう:2008/10/17(金) 01:32:13
>>201
そうですか、、、
だからぐぐってもそういうテーマがないんだ、、、
VBAで置換するのもなんかめんどいし、Formでパレット自作して
マクロ登録のほうがましかな、、、
ならそういうの既にありそうなのにな。

266 :名無しさん@そうだ選挙にいこう:2008/10/17(金) 02:35:45
>>265
これは?
ttp://www.eurus.dti.ne.jp/~yoneyama/Excel2007/excel2007-mycolor.html

267 :名無しさん@そうだ選挙にいこう:2008/10/17(金) 09:20:55
質問です。251さんの紹介した計算式
C1セルの式 =(A1&B1)=(A2&B2)
これは論理式なんでしょうが、こういう書き方があるのを初めて見ました。
論理式でググると、=ANDとか=ORのように必ず関数が出てきます。
IF関数の「中身」の式だけをセルに書いて、セルにTRUEとかFALSEと表示
されるのを初めて見ました。このような書き方はどこに記されているんで
しょうか?
自分のEXCEL2003のヘルプを「論理式」では該当なく、「論理関数」では数件
該当ありますが、=A2=A3のような書き方のことは見つけられませんでした。

268 :名無しさん@そうだ選挙にいこう:2008/10/17(金) 09:43:46
>>267
これは論理式じゃなくて比較演算子

269 :名無しさん@そうだ選挙にいこう:2008/10/17(金) 09:54:03
おいおいバカばっかだな

270 :名無しさん@そうだ選挙にいこう:2008/10/17(金) 10:03:33
>>269
2ちゃんなんか見てないで仕事しろよ。
さっきおまえの後ろを通りかかった人より

271 :名無しさん@そうだ選挙にいこう:2008/10/17(金) 11:08:35
>>267
論理式です
ANDやORは論理値を扱う関数であり
この倫理関数は論理値を返す式、つまり論理式が有ってのものです
比較演算子を使った比較式は、結果を論理値で返す論理式の1つであり代表的なものです

解説は計算演算子のところにあります
Excelでは式や関数の結果をセルに表示させるのは、先頭に=を付けるという規則があるので
その前提でこの項目を読めば
> 次に挙げる比較演算子は、2 つの値を比較し、結果として TRUE または FALSE の論理値を返します。
>
> 比較演算子  内容 (使用例)
> = (等号)     左辺と右辺が等しい (A1=B1)
は結果の論理値をセルに表示したければ「=(A1=B1)」と記述しろと書いてあるのと同義です
加算や減算の解説だって、先頭に=は付いてないけど、関数の引数に使うのではなく
その単一の演算結果をセルに表示させるなら=付けるのは当然でしょ

272 :名無しさん@そうだ選挙にいこう:2008/10/17(金) 12:46:36
>>267
=2+3
で5が返るけど、関数は出てこないだろ。そんな感じ
=A2=A3
の最初の=と後の=は全然意味が違うってことに気づけば分かりやすいかな

ちなみに「=」は比較演算子、「+」は算術演算子って言うんだけど覚えても滅多に役に立たんな

273 :困っています。:2008/10/17(金) 13:48:56
>>228
調べましたが、マクロは有りませんでした。

274 :名無しさん@そうだ選挙にいこう:2008/10/17(金) 14:06:24
>>273
Alt+F11でVBEを開いてシートやモジュールをすべて見てもないかな?
これもだめなら次はアドインを疑う
メニューの「ツール」→「アドイン」
チェックが付いてるものに怪しいのがないか見る

この先はもう思いつかない・・・

275 :名無しさん@そうだ選挙にいこう:2008/10/17(金) 14:22:15
>273
横レスです。
228からの関連レスを見直して
>>新しいブックを開いた時は、もちろんハイパーリンクは一切入っていませんが、
>>作業を進めるうちに、またいつの間にかハイパーリンクが入っています。
ということで引っかかったのが、エクセルを起動して新規ブックを扱っているだけなのに
いつの間にかハイパーリンクが入るということは、マクロウィルスが考えられるので、
下記のURLを参照してみてください。
http://www.ipa.go.jp/security/y2k/virus/cdrom/basic/1_05_4.html
ここはIPAという独立行政法人情報処理推進機構のセキュリティセンターのサイトです。


276 :名無しさん@そうだ選挙にいこう:2008/10/17(金) 17:14:46
【1 OSの種類         .】 WindowsXP SP2
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 Google:エクセル 表示 消す

動画の開始時間と終了時間を入力するとフレーム数に変換され
Trim(ここと,ここ)にフレーム数を表示するといった感じにしたいのですが
開始時間や終了時間を入力していない場合はTrim(,)←これは表示したくないのですが消す方法が分かりません。
ちなみに="Trim("&E7&","&K7&")"このように書いています。
お力貸してください

277 :名無しさん@そうだ選挙にいこう:2008/10/17(金) 17:17:29
>>276
どちらか片方が空白だったら表示しない
=IF(OR(E7="",K7=""),,"Trim("&E7&","&K7&")")

278 :名無しさん@そうだ選挙にいこう:2008/10/17(金) 17:33:11
>>277
IFでできると思うんですがTrim(0,0)と表示されます
もしや開始と終了の0をセルの書式設定の#で消してもだめですか?

279 :名無しさん@そうだ選挙にいこう:2008/10/17(金) 17:40:02
試してみればいいじゃん
バカすぎないか

280 :名無しさん@そうだ選挙にいこう:2008/10/17(金) 17:44:35
ごめんなさい
試して書き込んでました
式のない時間を選択したところTrim(,)は消えましたが0とだけ表示されます
時間は開始終了とも入力していません

281 :名無しさん@そうだ選挙にいこう:2008/10/17(金) 17:45:27
>>278
どちらか片方が0だったら表示しない
=IF(OR(E7=0,K7=0),,"Trim("&E7&","&K7&")")

282 :名無しさん@そうだ選挙にいこう:2008/10/17(金) 17:46:08
>>280
じゃあこうだな
=IF(OR(E7="",K7=""),"","Trim("&E7&","&K7&")")

283 :名無しさん@そうだ選挙にいこう:2008/10/17(金) 17:50:20
>>282さんの式の前半部に時間のセルを指定したところ表示が消えました
なぜこうなるのかしばらく考えてみます。
ありがとうございました

284 :名無しさん@そうだ選挙にいこう:2008/10/17(金) 18:31:30
>>283
悩むことはない
>>277が空文字列「""」を送るのサボったからだ

285 :名無しさん@そうだ選挙にいこう:2008/10/18(土) 08:51:08
質問です。
エクセル(2003 SP3)でシート上に棒グラフを作ったのですが
グラフエリア以外のセルをクリックするとグラフエリアが極細の網目模様になってしまいます
グラフエリアをクリックすると普通にグラフの内容が表示されるのですが・・・
プリントプレビューでも、実際にプリントしてもグラフ部分は印刷されず網目になってしまいます
どうすれば解決できるでしょうか? お願いします


286 :名無しさん@そうだ選挙にいこう:2008/10/18(土) 09:16:20
>>285
ツール → オプション → 表示 を開いて
オブジェクトを「位置のみ表示」から「すべて表示」に変更

287 :名無しさん@そうだ選挙にいこう:2008/10/18(土) 09:29:59
>>286
できました!!!ありがとうございます!
こんなオプション通常弄るはず無いから、ノーチェックでした
誰かが弄ってたのかもしれません・・・orz
とにかくありがとうございました!

288 :名無しさん@そうだ選挙にいこう:2008/10/18(土) 16:17:52
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 初心者
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 Google:excelVBA 台形積分

VBAを使って、台形積分をしたいのですが、どうもうまくいきません。
グラフを書く場合シート上では
 A   B
1 0.542 35.965
2 0.541 35.276
3 0.538 34.56
4 0.535 33.872
5 0.532 33.155
6 0.53  32.495
7 0.526 31.807
8 0.525 31.148
9 0.521 30.46
10 0.519 29.8
 (横軸) (縦軸)

となります。グラフにすると分かるのですが、累乗関数的なグラフとなります。
以下にとりあえずためしてみたコードをかきます。


289 :288:2008/10/18(土) 16:19:22
Sub module1()

Dim f1(), f2() As String

ReDim Preserve f1(i)
ReDim Preserve f2(i)
f1(i) = Cells(1, 2)
f2(i) = Cells(1, 1)

i = 1

Do Until Cells(i, 1) = ""
ar = ar + (f1(i - 1) + f1(i)) * (f2(i) - f2(i - 1)) / 2
i = i + 1
Loop

End Sub

この状態だと、ar = ar + (f1(i - 1) + f1(i)) * (f2(i) - f2(i - 1)) / 2
のところで「インデックスが有効範囲にありません」というエラーが出ます。


290 :288:2008/10/18(土) 16:19:57
たぶん、配列を二つ使っているのに、Doの行でセルを一つしか指定していなかったり
という部分に問題があると思うのですが、テキスト的なコードしか分からない今の自分には
解決方法が導けません。

どなたかお力をお貸しください。

あと、ついでにお聞きしたいのですがDoの条件を設定する時、
Do Until 条件の設定
Loop
とするんですよね?セルが空になるまでDo処理をしたいときは、
Do Until Cells(1,1) .Value <> ""
とすればいいのは分かるのですが、終わりのセル番号を指定したい時
(例えば、A7のセルで処理を終わらせたい)
と言う時はどのようなコードを書けばよいのでしょうか?
(というか、これだとforを使うほかないのでしょうか)


291 :名無しさん@そうだ選挙にいこう:2008/10/18(土) 16:39:03
もうExcelの範囲外だけど
とりあえずiの値の変化を追ったほうが良いよね


292 :名無しさん@そうだ選挙にいこう:2008/10/18(土) 20:33:12
A列に退勤時間がはいっています。表示は17:50の形となっています。
退勤時間が17:30-18:00であれば黄色に色づけたいのです。
条件付き書式設定で、数式の所にどのようにかいたらか教えてください。
時間の表示が悪く、全ての時間できいろくなっていますので。

293 :名無しさん@そうだ選挙にいこう:2008/10/18(土) 20:38:30
>>292
シリアル値で設定する
17.5/24以上、18/24以下で書式設定

294 :名無しさん@そうだ選挙にいこう:2008/10/18(土) 20:49:18
>>293
サンクス。おかげで出来ました。


295 :名無しさん@そうだ選挙にいこう:2008/10/18(土) 21:13:56
>>290
繰り返しについては、ここ読んで勉強して。
ttp://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_for_next.html

296 :名無しさん@そうだ選挙にいこう:2008/10/18(土) 21:18:09
>>289
subが始まった時点でiは0
つまりReDimのところでもiは0のまま

297 :名無しさん@そうだ選挙にいこう:2008/10/18(土) 22:22:23
こんにちわ。
あ、こんばんわ!

技術的な問題でないのですが教えてください。
【1 OSの種類         .】 Windows‥?
【2 Excelのバージョン   】 Excel‥?
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【困っていること】これからエクセルを学ぼうとするものです。
 職場と自宅のパソコンの種類が違うので、
 どのバージョンから勉強したらいいか迷っています。

自宅 VISTA ・ 2007
会社 VISTAではない、机によって違う ・ 2000?1998?机によって違う

自宅の2007を使って学習しようと思いましたが
それ以前のものとはかなり使い方が違うようで困っています。
やっぱり会社のエクセル用の本を買って
読んだ方がいいでしょうか。
あまり気にせず学習は自宅の2007でいいでしょうか?

298 :名無しさん@そうだ選挙にいこう:2008/10/18(土) 22:31:36
>>297
覚えたい内容による。
Excelの本質である表計算機能、つまり数字と関数を並べていろいろな計算をさせるだけならどれを使ってもほとんど同じ。

299 :名無しさん@そうだ選挙にいこう:2008/10/18(土) 22:34:14
>>298
ありがとうございます。
はい、基本しか使わないと思います。
今からやってきます


300 :名無しさん@そうだ選挙にいこう:2008/10/18(土) 22:35:08
【1 OSの種類         .】 WindowsXP SP3
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 Excel 奇数 グラフ

Excelに光熱費をつけて、それらをまとめて1つのグラフで表示したいのですが、
水道代とかNHK受信料のように隔月支払いのものがうまく表示できません。

↓エクセルシートはこんな感じ
   A   B     C
1     電気代 水道代
2  1月 5000   2500
3  2月 5500
4  3月 5000   2400
5  4月 4500

たとえば、グラフのデータは全部のセルを選択した状態にすると、
毎月支払っている電気代はちゃんと表示されますが水道代は全く表示されません。
水道代をCTRLしながら、支払った月のセルだけ選択すれば表示されますが、
グラフ上で3月に支払った金額が2月のところにずれてしまいます。
うまく表示する方法はあるでしょうか?

301 :名無しさん@そうだ選挙にいこう:2008/10/18(土) 22:47:39
>>300
A1-C5選択してそのままグラフ作ると無理なのか?
2003だとそれでできるんだけど
あと日本語変ですよ

302 :名無しさん@そうだ選挙にいこう:2008/10/18(土) 22:50:07
>>301
無理だろ。と思ったけど棒グラフだと行けるな。
作業列でも作ればいいんじゃないかな

303 :名無しさん@そうだ選挙にいこう:2008/10/18(土) 22:51:37
どうせ折れ線グラフとか肝心なことが書いてないので
すき間を=NA()で埋めるなどすればいい

304 :300:2008/10/18(土) 22:58:34
>>301-303
すんません、折れ線グラフです。
=NA()入れたらうまくいきました。ありがとうございます!!

305 :名無しさん@そうだ選挙にいこう:2008/10/18(土) 23:33:32
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 ある程度
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 Excel セル 書式 表示形式

エクセルで給与計算するシートを作っています
入社時刻を入れるセルを2列用意し、
1列目:リストから選択 2列目:手動入力にしています

その2列に「#"時"##"分"」と表示するよう設定したものの
1列目だけが「####」と化けてしまう
尚、そのセルへのオンマウスで出る小窓は「#"時"##"分"」で表示される

考えられる原因ってなんでしょうか?
この状態から入力規則を切っても駄目でした

306 :305:2008/10/18(土) 23:44:26
自己解決しました
セルの横幅が足りなかったのが原因でした
お手数かけてすんません

307 :名無しさん@そうだ選挙にいこう:2008/10/19(日) 00:09:54
エクセル2003で、ページの一部分だけスクロールをしたいんですがどうすればいいですか?

あと、ここの文字をクリックしたら、あそこに飛ぶ、ようにするにはどうすればいいですか?

308 :名無しさん@そうだ選挙にいこう:2008/10/19(日) 00:19:48
>>307
ウィンドウ→分割、またはウィンドウ枠の固定

309 :名無しさん@そうだ選挙にいこう:2008/10/19(日) 00:38:45
ハイパーリンク

310 :307:2008/10/19(日) 01:12:12
>>309
エクセル内に文書を作って、たとえば、
「書いたい物」
の文字をクリックすると、
同じエクセルページ内の「買いたいものリスト」に飛ぶようにしたいんです。

311 :名無しさん@そうだ選挙にいこう:2008/10/19(日) 01:28:48
>>310
ハイパーリンクでその「買いたいものリスト」が書かれてるセルを指定すればおk

312 :名無しさん@そうだ選挙にいこう:2008/10/19(日) 08:07:44
リストのことか?データの入力規則

313 :総務2年生:2008/10/19(日) 10:50:22
>>239
適切な説明ありがとうございました
この方向で作っていきたいと思います
ちなみに1行目だけ印刷対象外にする方法をしりたいです

>>242
ありがとうございます
この様にコードを入れたのですが

Sub aaa()

Private Sub CommandButton1_Click()
With Worksheets("Sheet2")
.Range("A1").Value = .Range("A1").Value + 1
End With
End Sub

End Sub

いくらやってもコンパイルエラーで「End Sub が必要です。」がでます

それからこのコードは1.2.3.4・・・と連番限定なんですか?


314 :名無しさん@そうだ選挙にいこう:2008/10/19(日) 11:27:55
Private Sub CommandButton1_Click()
With Worksheets("Sheet2")
.Range("A1").Value = .Range("A1").Value + 1
End With
End Sub
だけでいいんじゃないの

315 :名無しさん@そうだ選挙にいこう:2008/10/19(日) 11:33:19
Private Sub CommandButton1_Click()
Worksheets("Sheet2").Range("A1").Value = Range("A1").Value + 1
End Sub
だけでよくね
コードの意味はA1セルの値はA1セルの値に+1したもの
だから+1を+2にすれば1個飛ばしたりもできる
-1なら逆の連番だな

316 :名無しさん@そうだ選挙にいこう:2008/10/19(日) 13:54:13
Excelの勉強をしたいと思ってるんですが、Excelを買う金がなく、以前からPCに入っている三四郎を使って勉強したいと思っています。
図書館で三四郎の本を探してもなく、Excelの教科書を借りてきました。
Excel教本と三四郎を使用して、Excelの基礎や関数などを学んでも、実際Excelを使うときでも支障はないでしょうか?

317 :名無しさん@そうだ選挙にいこう:2008/10/19(日) 13:57:21
まったく役に立たないと思います

318 :名無しさん@そうだ選挙にいこう:2008/10/19(日) 14:19:09
助けて下さい。
EXCEL2007で散布図を作っているのですが、プロットが正しい位置に打たれません。
3.2なのに3.15付近にプロットされたり、2.2なのに2.25だったりといった具合です。
グラフの種類はプロットのみ、線なしの散布図です。

元のデータは計算結果ではなくただの数値、X、Yとも3.1とか2.6といった、
1桁+小数点第1位の単純な値です。

時間さえあればじっくり調べられるのですが、17時までに資料を仕上げなきゃという状況です。
何分勝手な言い訳なのですが、ご存知の方いらっしゃればご教示ください。
すがる思いでお願いいたします。

319 :名無しさん@そうだ選挙にいこう:2008/10/19(日) 14:33:36
実際のファイルをどこかにうpして見せないと適切なアドバイスがつかないと思います

320 :名無しさん@そうだ選挙にいこう:2008/10/19(日) 15:10:16
>316
ネタとしか思えないが、マジレスすると
Excelは有料ですが、無料で使えるOOo(オープンオフィス)があります。Excelに相当するCalcだけ
インストールというのはできないと思うけど、全体でも大した容量はないのでおすすめです。
三四郎よりも、オープンオフィスで表計算の勉強をするとExcelに移ってもあまり違和感はないと
思います。(Excel2007を除く)
ただし、オープンオフィスの解説本はExcelと比べると圧倒的に少ない(あってもCalcだけじゃない)
ので、ネットで調べるのがいいと思う。



321 :239,242:2008/10/19(日) 15:24:11
>313,315
Withは、代入式の左右どちらにも影響するので、私が書いたようにした方がいいです。
Withを書かない場合は、
Worksheets("Sheet2").Range("A1").Value = Worksheets("Sheet2").Range("A1").Value + 1
と書かないとおかしくなります。

>それからこのコードは1.2.3.4・・・と連番限定なんですか?
+ 1 なのでひとつずつ増やすだけです。別にボタンを加えて初期値にする(データが2行目
からであれば
.Range("A1").Value = 2 とすれば[1件目]ボタンになるし、
.Range("A1").Value = .Range("A1").Value - 1 ならば[前]ボタンです。
直接○行目のデータに移りたいときは、A1セルに数字を入れれば済みます。

>ちなみに1行目だけ印刷対象外にする方法をしりたいです
印刷範囲を設定する、というのはExcelの初級ですよ。除外する範囲ではなく、シート2(見積書)
の印刷範囲を指定すればいいだけのことです。



322 :名無しさん@そうだ選挙にいこう:2008/10/19(日) 17:53:13
>>316
2ヶ月使える試用版が無料で落とせるよ。
ttp://trial.trymicrosoftoffice.com/trialjapan/default.aspx
ちゃんと勉強すれば、2ヶ月もあれば一通りのことはマスターできる。

323 :名無しさん@そうだ選挙にいこう:2008/10/19(日) 17:56:24
>>318
もう17時を回ったから手遅れかもしれんが、一応。
本当に少数以下一位までの数値になってる?表示形式で丸めてない?

324 :名無しさん@そうだ選挙にいこう:2008/10/19(日) 19:12:22
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 エクセルが起動しない

Excelを起動すると一瞬画面に出ますが、すぐ消えます。
プロセスにはexcel.exe (CPU 0%, 11.812kb memory使用率)が出ます。消すこと可能、消しても問題解決しない。
CDから再度インストールしたけど解決せず。

です。

関係ないかもしれないですが
先日一度ウィルスに感染したので二週間位前のシステム復元ポイントを使って復元済み。
⇒a-squared free, lavasoftなどでdeep scan してウィルスやmalwareなどはすべて検疫しました。
最初Excelは動いていましたが、一度急に消えた後、エクセルが動かなくなりました
(ちょうどa-squared freeでfull scanをしていた間かな?) 忘れてしまった。
⇒ちょうどavanti ...? が後1日でつかえなくなるといってくるのでuninstal。

325 :名無しさん@そうだ選挙にいこう:2008/10/19(日) 19:23:20
質問1
管理表.xlsというファイルがあって
A2に年度、A4に月を入力してマクロを実行すると
他フォルダのファイルの該当データを取り込んでC2、C4に反映させる用にしたいです。

具体的には、例えば

管理表.xls の A2に20、A4に9を入力してマクロを実行すると
D:\集約済データ\H20 というフォルダにある、
"一覧.xls" というファイルの "9月" というシートのB2の値を
管理表.xlsのC2に表示する。

管理表.xls の A2に19、A4に12を入力してマクロを実行すると
D:\集約済データ\H19 というフォルダにある、
"一覧.xls" というファイルの "12月" というシートのB2の値を
管理表.xlsのC2に表示する。

説明がわかりずらくてすみません。
よろしくお願いします。

326 :325:2008/10/19(日) 19:25:07
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】
【4 VBAでの回答の可否】 可
【5 検索キーワード     】

忘れてました

327 :名無しさん@そうだ選挙にいこう:2008/10/19(日) 20:22:17
>325
マクロの記録は試してみましたか?
ExcelVBAはどの程度まで扱えますか? マクロの記録で作成されたコードをいじることは
できますか?

328 :名無しさん@そうだ選挙にいこう:2008/10/19(日) 20:24:19
>>325
Sub a()
 Cells(3, 3).Formula = "='D:\集約済データ\H" & Cells(2, 1) & "\[管理表.xls]" & Cells(4, 1) & "月'!B2"
End Sub

329 :名無しさん@そうだ選挙にいこう:2008/10/19(日) 20:27:35
>>325
328は間違い

Sub a()
Range("C2").Formula = "='D:\集約済データ\H" & Range("A2") & "\[管理表.xls]" & Range("A4") & "月'!B2"
End Sub

330 :325:2008/10/19(日) 20:46:14
>>329
できました!ありがとうございます。

331 :名無しさん@そうだ選挙にいこう:2008/10/19(日) 20:49:10
折り返して全体を表示  としても、全体の文字が表示されないことがあります。
なので、セルの幅を広げます。解決するにはどうすれbいいでしょうか?

あと、セルを結合して、そこに文字を打っても上記のような状態になることがあります。


332 :名無しさん@そうだ選挙にいこう:2008/10/19(日) 20:52:14
>>331
どういう風に途切れてるんだ?

333 :名無しさん@そうだ選挙にいこう:2008/10/19(日) 20:58:06
>>331
「縮小して全体を表示する」にチェック
または
「折り返して全体を表示する」にチェック+行の高さを広げる

334 :名無しさん@そうだ選挙にいこう:2008/10/19(日) 21:07:55
もう1回質問します。

【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】シートのコピー 名称変更

各部署で作成してるデータを1つのファイルでシートを分けてまとめる作業をしてるんだけど
D:\データというフォルダの中に
A課.xls B課.xls C課.xlsという3つのファイルがあるとする。(実際は20ファイルぐらいあるけど)
で、3つのファイルはそれぞれにシートが複数合って、シート名は
"H20"、"H19"、"H18"、・・・・・といった具合に年の名前になっている。
で、作業中のファイルでA1シートに"20"を入れてマクロを実行すると
Dドライブのファイルから該当年度のシートをコピーして、なおかつシート名を
"H20A課"、"H20B課"、"H20C課"とするには
どんな風に記述すればいいですか。

335 :名無しさん@そうだ選挙にいこう:2008/10/19(日) 21:11:02
>>332
ttp://mb1.net4u.org/bbs/index.php?usid=hiroshi&mode=image&file=12.jpg

な感じです。セル結合してますが表示されてないです。


>>332
試してみましたが、1つの棒のように表示されまったく読めない状態になりました。

336 :335:2008/10/19(日) 21:12:33
画像がなぜか2ちゃんねるからでは見ることできませんが、
アドレスに直接貼り付ければ見れます。
http://mb1.net4u.org/bbs/index.php?usid=hiroshi&mode=image&file=12.jpg

337 :名無しさん@そうだ選挙にいこう:2008/10/19(日) 21:13:37
>>335
そのスペースにそれだけの文字を表示されるためには横幅を広げるか縦幅を広げるか
文字を小さくするしかないのでは?

338 :名無しさん@そうだ選挙にいこう:2008/10/19(日) 21:14:34
>>335
こういう風に貼るんだ
ttp://mb1.net4u.org/bbs/data/hiroshi/img/12.jpg

339 :名無しさん@そうだ選挙にいこう:2008/10/19(日) 21:16:11
>>335
長い文章をエクセルで扱うこと自体が間違い

どうしてもやるなら>>333の言ってる
「折り返して全体を表示する」にチェック+行の高さを広げる
で対処するのがベスト
じゃなければもっと広い範囲でセル結合


340 :名無しさん@そうだ選挙にいこう:2008/10/19(日) 21:26:57
>>338
なぜ私のは表示されないんでしょうか?

341 :名無しさん@そうだ選挙にいこう:2008/10/19(日) 21:31:17
>>339
1つのセルだと、折り返して全体表示 で自動的に表示されます。
でも、結合すると駄目なんですよね。
たとえば4行分結合してるとして、自動的に、4行1つ1つの幅が平均的に
広がるようにならないのかしら?

342 :名無しさん@そうだ選挙にいこう:2008/10/19(日) 21:51:10
>>341
無理だな
フォントのサイズ+余白分を行の高さにすればいけそうだけど
そんなことするなら一行ずつ入力するほうが速いな

343 :名無しさん@そうだ選挙にいこう:2008/10/19(日) 22:39:22
>>342
それでもいいんだけど、横幅を毎回調整するのがめんどくさいのよね

344 :名無しさん@そうだ選挙にいこう:2008/10/19(日) 22:49:42
セル結合する奴がカス。

345 :名無しさん@そうだ選挙にいこう:2008/10/19(日) 22:52:55
別のところから数字引っ張ってきて下に文章を添える程度なら別にいいと思う
エクセルで長文作ってるならウンコね

346 :名無しさん@そうだ選挙にいこう:2008/10/19(日) 23:00:35
なぜセル結合までして長文を入れたいんだろ?
テキストボックスじゃダメなのかな?
位置の微調整も楽なのに。

347 :名無しさん@そうだ選挙にいこう:2008/10/19(日) 23:20:32
エクセルのシートを2、3段で表示する方法ありますか?

348 :347:2008/10/19(日) 23:22:24
説明があまりにも悪いですね。

今は1列にシートが表示されてて、横へ移動しないと全部のシートが見れないんです。
2段とかにすれば、全部見れて、すぐにパッと目的のシートを表示させたいんです。

349 :名無しさん@そうだ選挙にいこう:2008/10/19(日) 23:34:47
>>347
ウィンドウの分割で2段にならできる
分割したあと境界線をマウスでドラッグ

350 :名無しさん@そうだ選挙にいこう:2008/10/19(日) 23:37:31
ウィンドウの分割って何ですか?

351 :名無しさん@そうだ選挙にいこう:2008/10/19(日) 23:56:40
セル書式設定で
折り返して表示

ってことじゃないの?

Alt + エンター でセル内改行出来るよ

352 :名無しさん@そうだ選挙にいこう:2008/10/20(月) 00:00:37
エスパー
シートタブを2段にしたいってことでしょ。それは無理。
シートを一発で選択するには、タブが並んでるところの左端の小さい黒い三角を右クリックのが簡単。
あと、シートタブと横スクロールバーの境界はドラッグで変更できるから、少しなら広げることが出来る。

353 :名無しさん@そうだ選挙にいこう:2008/10/20(月) 04:59:56
【1 OSの種類 .】 WindowsXP【2 Excelのバージョン 】 Excel2007【3 VBAが使えるか .】 いいえ【4 VBAでの回答の可否】 否【5 検索キーワード 】 Excel セル 整列

http://www.vipper.org/vip962071.jpg
画像のように列も行も数値もバラバラのセルを1列(A列)にまとめる方法はないでしょうか?
もしも列の中でバラバラでもそれは直しかたが分かるので大丈夫です
お願いします

354 :名無しさん@そうだ選挙にいこう:2008/10/20(月) 05:32:02
>>353
作業列に=SMALL($A$1:$E$5,ROW())って入れて適当な数だけコピペすればすべてのデータが1列に集まる。
A列にもデータが入ってるから、この方法ではA列は作業列に使えない。
作業列に集めてからA列にあらためてコピペ(形式を選択して貼り付け→値)とかする必要がある。
データの範囲がA1〜E5じゃない場合は、それに合わせて式を変更する。

355 :名無しさん@そうだ選挙にいこう:2008/10/20(月) 06:18:46
OS:WindowsXP

質問1
Z10〜Z40までのセル範囲に
一箇所でも空白以外のセルがあったら
Z41に”有”と表示する
Z10〜Z40が全て空白だったら
Z41は”無”と表示するにはどうすれば?

質問2
E10:Y40までのセル範囲で
”○”と入力されているセルの数を数えて
Z42に表示するにはどうすれば?

356 :名無しさん@そうだ選挙にいこう:2008/10/20(月) 07:56:35
>>355
1
=if(counta(z10:z40)>0,"有","無")
2
=COUNTIF(e10:y40,"○")
または○を1に置換して、sumなんて方法もある

357 :名無しさん@そうだ選挙にいこう:2008/10/20(月) 12:17:26
質問です。
エクセル2007でエクセル単体のメモリ使用量が2Gを越えると、メモリ不足ですと言われるんですが、これは仕様ですか?
物理メモリは3G積んでいます。CPUはC2DのE6700です。タスクマネージャーで見るとまだ物理メモリの上限まで0.8Gほど余裕があります。
3つのファイルを一つにまとめようとしたら上記のような事が生じてしまいました。
対処法はあるのでしょうか?
教えてください。

358 :名無しさん@そうだ選挙にいこう:2008/10/20(月) 12:59:16
32bit環境(CPUかOSが32bit)では、アプリが使えるメモリ空間は上限2GBです
対処法は完全64bit環境に移行することです

359 :名無しさん@そうだ選挙にいこう:2008/10/20(月) 13:15:29
>>357
現実的な対処法は1シートずつコピーするとか、かね



360 :288:2008/10/20(月) 13:20:45
返信遅くなり申し訳ありません。
>>291
この内容だとスレ違いになってしまいますか?
他のVBA専用スレ等で質問した方が良いんでしょうか。
iの変化で気になるところがあるのですが、もし1行目のセルでi-1の処理をした時に、
i-1は存在しないので、エラーが出るのか?と思い、
制御変数をi=2としてみましたが、同じエラーが出てしまいました。

>>290
URL参考にさせていただきました。
exit doを使えば指定のセルでループから途中抜けできそうですね。
ありがとうございました。

>>296
ReDimの前に制御変数:@を指定しろという事でしょうか?
これをやってみると、「インデックスが〜」というエラーがなくなりました(ありがとうございます!)
しかし、今度は同じ行に「型が一致しません」というエラーが出るようになりました。
これは変数の設定が甘いのかと思い最初のDim行でarとiの変数を設定を行いましたが、
同じエラーが出てしまいました。
とりあえず以下に現在のコードを書きます。

361 :288:2008/10/20(月) 13:21:16
Sub module1()
Dim f1(), f2() As String, ar As Single, i As Long
i = 1
ReDim Preserve f1(i)
ReDim Preserve f2(i)
f1(i) = Cells(1, 2)
f2(i) = Cells(1, 1)
Do Until Cells(i, 1) = ""
ar = ar + (f1(i - 1) + f1(i)) * (f2(i) - f2(i - 1)) / 2
i = i + 1
Loop
End Sub

受け身な態勢で恐縮ですが、もし他に何かアドバイスなどあれば
引き続きよろしくお願いいたします。

362 :357:2008/10/20(月) 13:21:57
>>358
ありがとうございます。
そういう事でしたか。理解できました。

363 :名無しさん@そうだ選挙にいこう:2008/10/20(月) 13:24:27
>>361
ReDimはループの中でしないと意味無いよ

364 :363:2008/10/20(月) 13:34:58
Sub module1()
Dim f1(), f2() As String, ar As Single, i As Long
i = 1
Do Until Cells(i, 1) = ""
ReDim Preserve f1(1 to i)
ReDim Preserve f2(1 to i)
f1(i) = Cells(i, 2) 'B列のi行目
f2(i) = Cells(i, 1) 'A列のi行目
ar = ar + (f1(i - 1) + f1(i)) * (f2(i) - f2(i - 1)) / 2
i = i + 1
Loop
End Sub

こうじゃないかと・・・
ところでf1()に型が指定されていないのが気になる
前のレスまだ読んで無いので確かな回答はできて無いかもしれない

365 :363:2008/10/20(月) 13:43:13
軽くググってみたら台形積分って何?って感じになった・・・
入力が何で出力が何かはっきりしないとどうしようもない

366 :363:2008/10/20(月) 14:01:43
やりたいこと飲み込めたかな・・・

Sub module1()
 Dim f1(), f2() As String, ar As Single, i As Long
 i = 1
 Do Until Cells(i, 1) = ""
  ReDim Preserve f1(i) '(0 to i)
  ReDim Preserve f2(i) '(0 to i)
  f1(i) = Cells(i, 2) 'B列のi行目
  f2(i) = Cells(i, 1) 'A列のi行目
  ar = ar + (f1(i - 1) + f1(i)) * (f2(i) - f2(i - 1)) / 2
  i = i + 1
 Loop
End Sub

よく分からなかったので計算式から推測
後、気になったのは1行目の計算はこのままでいいのか?ってこと
なんか1人でスレ汚しまくってるな・・・

367 :363:2008/10/20(月) 14:19:00
Dim f1(), f2() As String, ar As Single, i As Long

Dim f1() As Single, f2() As Single, ar As Single, i As Long
に変えたら動いたし結果もなんか出た
ただf2()をVariantに変えてやってみた時との誤差が大きかった
入力値を整数にしてからやったほうがいいかも知れん
もうこれ以上汚さずに済むかな・・・

368 :名無しさん@そうだ選挙にいこう:2008/10/20(月) 14:55:09
台形積分というのは台形の面積を足して積分の近似値を求める方法。
だからデータがi行あったら計算の回数はi-1回になる。
あと、データを配列に入れる必要はまったくない。

Sub a()
 Dim ar As Double
 ar = 0
 i = 2
 While Cells(i, 1) <> ""
  ar = ar + (Cells(i - 1, 2) + Cells(i, 2)) * (Cells(i - 1, 1) - Cells(i, 1)) / 2
  i = i + 1
 Wend
 Cells(1, 3) = ar '結果をC1セルに入れる
End Sub

369 :名無しさん@そうだ選挙にいこう:2008/10/20(月) 18:01:02
質問です。
シートを保護した状態で(部分的にセルにロックをかけています。)、
行をコピーして「コピーしたセルの挿入」をすることはできませんでしょうか?
計算式などは触られたくないけれども、項目の追加は利用者に任せるというふうにつかいたいのですが。。。

どなたかお助けください・・・

370 :名無しさん@そうだ選挙にいこう:2008/10/20(月) 18:31:48
>>369
「シートの保護」ウィンドウの「このシートのすべてのユーザーに許可する操作」で
「行の挿入」をチェックすれば、挿入ができるようになります。

371 :名無しさん@そうだ選挙にいこう:2008/10/20(月) 18:33:40
>>369
データ入力用のシートと計算式が入ったシートを分けるという方法もある。
部分的にシートを保護するのは設定が面倒だから、こっちが間違いが少ないんじゃないかなあ。

372 :名無しさん@そうだ選挙にいこう:2008/10/20(月) 18:33:40
>>369
「シートの保護」の設定で「行の挿入」を許可すればいいだけでは?

373 :288:2008/10/20(月) 19:20:06
皆さんのおかげでコードが完成しました。
>>363
366のコードですと、また「型が一致しません」というエラーが出たのですが、
最初のi=1をi=2とすると、うまく通るようになりました。
しかし値を出力してみると、どうもおかしい・・・。
色々やってみたのですが、うまくいかず、結論として、私が作ったarの式が
配列を用いて台形積分を求めるには適切でなかったようです。
せっかく考えていただいたのにすみませんでした。

>>368
これですね!ありがとうございます。
実は、290さんのページをを改めて見直し、配列を使わずに計算する方法が記載されており
それを参考にしながら台形積分のコードを作成しておりました。
結果的に368さんと同じ形式・値となったので、確信がを持つ事ができました。

参考URLはちゃんと見なければいけませんね・・・。すみません。
本当にありがとうございました。

374 :名無しさん@そうだ選挙にいこう:2008/10/20(月) 19:29:26
>>370
>>371
>>372
ありがとうございます。
ご指摘の通り、シート保護の設定で「行の挿入」にチェックを入れているのですが、
結合セル(ロック状態)は分解されてしまい、書式コピーでも結合ができません。
>369で書き込みました通り、「コピーしたセルの挿入」同等の動作を行いたいのですが、なにか方法はありませんか?


375 :名無しさん@そうだ選挙にいこう:2008/10/20(月) 19:51:54
>>374
>>371の案は却下?
それなら一時的に保護をはずして行を追加するとか・・・
追加する行のフォーマットが固定されているならVBAでできなくも無い

376 :名無しさん@そうだ選挙にいこう:2008/10/20(月) 20:11:01
>>375
却下などではありません^^;
ただ、結果だけでなく計算過程も表示しなければいけない表なので、それらを分けるのは少々難しいかと思いまして、、、
フォーマットは固定されていますので、VBAというもので調べてみます。
また解決しましたらご報告いたします。どうもありがとうございます!

377 :名無しさん@そうだ選挙にいこう:2008/10/20(月) 20:31:16
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否

しょーもないことなんですが、リストをフィルタするときに
Excel2003までは▽押して、特定の数値なり選んで完了でした、ものの2クリックです

2007は数値を複数選べるのは便利なんですが、一つだけ選ぶときに
「▽押す」「すべて選択を押して全部解除」「選びたい数値を選ぶ」「OKボタンを押す」
動作が四クリックになってます

自分の使い方では複数選ぶことなんてほとんど無いので、
2003のようなクラッシックなメニューにするか、最初入ってるチェックが全部OFFになってる方が便利なんですが
そういう設定はありますか?

378 :名無しさん@そうだ選挙にいこう:2008/10/20(月) 20:38:49
つづけてもう一つ質問です(環境は同じ)

リストに名前を定義して使ってます
2003までは定義した範囲を選択すると「名前ボックス」には当然、つけた名前が表示されたんですが
2007では「リスト1」みたいなexcelが自動的につけた名前が表示されちゃいます

「名前の管理」で見えますが、そのリストがなんて名前だったか、いちいちそれを開かないと確認できません
シート上で確認したいので、名前ボックスに名前を優先表示させる方法はありますか?

379 :名無しさん@そうだ選挙にいこう:2008/10/20(月) 20:59:11
×リスト
○テーブル

ですね、2003のをインポートした部分は「リスト」、2007で新規で作ったら「テーブル」という・・

380 :名無しさん@そうだ選挙にいこう:2008/10/21(火) 00:19:41
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 全く分かりません
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 エクセル IF 別シート 集計など

今、総括表を作っているんですが・・・。
例えばデータ用のシート1のA1に文字が入ってたら、総括表シートのA1にその
文字を入力。
なければA1を空白にしたいと考えています。
ただそのデータ用のシートが3つあり、その3つを串刺しするように総括表シー
トへ文字を入力したい為、非常に悩んでいます。
=IF(Sheet3!A1="","",Sheet3!A1),IF(Sheet2!A1="","",Sheet2!A1),
IF(Sheet1!A1="","",Sheet1!A1) というような感じで関数を作ってみたりして
いますが、なかなか上手くいきません・・・。

何か良い解決方法はないでしょうか?


381 :名無しさん@そうだ選挙にいこう:2008/10/21(火) 00:28:23
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 使えません
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 SUM 集計

クレジットカードのサイト上の明細ページをコピーしてエクセルにペーストしたのですが、
SUMが機能せず、合計がゼロになってしまいます。
表示方法も数値、金額など試しましたがダメでした。
いったい、何が問題なのでしょうか?
もし判りましたら教えて頂ければと思います。
よろしくお願い致します。



382 :名無しさん@そうだ選挙にいこう:2008/10/21(火) 00:36:19
>>380
3つのデータを全部つなげて並べて表示するの?
それともSheet3にデータが入ってたらそれだけを表示して、Sheet2とSheet1のデータは無視するの?

383 :名無しさん@そうだ選挙にいこう:2008/10/21(火) 00:38:02
>>381
たとえば「\ 12,000-」みたいなデータは文字列になるから計算には使えない。
「12,000」みたいに前後の記号をすべて消して数字だけにする。

384 :名無しさん@そうだ選挙にいこう:2008/10/21(火) 00:44:11
>>382
どちらかと言うと、後者に近いです。
各データシートの同セルにおいて、文字列が入っているのはデータシート
1〜3のどれか1つで、そうでなければ全てブランクという状態です。
ですので、各シートのうちどれかに文字列が入っていれば、それを総括表
シートに記入されるようにしたいと思っています。

385 :名無しさん@そうだ選挙にいこう:2008/10/21(火) 00:56:43
>>384
だったらこれでいいはず
=Sheet1!A1&Sheet2!A1&Sheet3!A1

386 :名無しさん@そうだ選挙にいこう:2008/10/21(火) 01:01:36
>>385
おおーー!!
上手くいきました。
ありがとうございます!!!

387 :名無しさん@そうだ選挙にいこう:2008/10/21(火) 07:31:23
たまにここ覗いてるんだけど
>>385みたいな雑念を捨てたシンプルな回答はなかなかできないw


スレ違いすまん

388 :>>170:2008/10/21(火) 10:01:04
>>171さんに教えていただいた方法を試したのですが、ファイル名をセルから持ってくる方法が解りません、どなたか教えていただけませんか、お願いします

389 :名無しさん@そうだ選挙にいこう:2008/10/21(火) 10:19:26
>>388
例えば
ActiveWorkbook.SaveAs Filename:=Cells("A1") & ".xls"
Filenameでパス&ファイル名を指定すればいい

390 :名無しさん@そうだ選挙にいこう:2008/10/21(火) 14:13:58
【1 OSの種類         】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    】 いいえ
【4 VBAでの回答の可否 】 否
【5 検索キーワード     】 絶対参照 相対参照 コピーしたセルの挿入

下図のような状態で、
@ 1〜4の間に行を追加(B列の書式は残したまま)
A 下図のセットをA5:B8にコピー(B列はA5を参照した関数に)
の両方の作業をA1:A4を分解せずに行う場合、どのような関数を設定すればよいでしょうか?

なお、現在B列のセルには=IF( A1="正" , C1*D1 , "-" )という関数を入れています。
A1を絶対参照にした場合、@は問題ありませんが、AでA1を参照してしまいます。
A1を相対参照にした場合、Aは問題ありませんが、@でA2を参照してしまいます。

”参照先のセルが結合されている場合、当該セルを含む結合セルを参照する”というなにがしかはありませんでしょうか?
また他になにかいい方法があればお願いします;;

┌─┬────┬─────────┐
| │ A │ B     │ C D
├─┼────┼─────────┤
|1│ │A1の正否により計算│
│ │    ├─────────┤
|2│ 参照元 │A1の正否により計算│
│ │    ├─────────┤
|3│ (結合) │A1の正否により計算│
│ │ ├─────────┤
|4│(リスト)│A1の正否により計算│
└─┴────┴─────────┘

391 :名無しさん@そうだ選挙にいこう:2008/10/21(火) 15:16:19
>>390
VBAを使えば結合セルの一番上の座標は一発で求まるんだけどVBA不可なので作業列を使う。
E列を作業列として、以下のような式を入れておく。
E1=A1
E2=(A2=0,E1,A2)
E3以下はE2をコピペ
そしてB列の式をこのように修正。
B1=IF(E1="正",C1*D1,"-")
作業列を隠したかったら一番上のEと書いてある部分を右クリックして「表示しない」。
コピペする時はE列を含めるのを忘れないように。

392 :名無しさん@そうだ選挙にいこう:2008/10/21(火) 16:19:26
本来のデータが0だとおかしくなる

393 :名無しさん@そうだ選挙にいこう:2008/10/21(火) 17:45:10
>>391
ありがとうございます。
おかげさまで無事できました。
少々内容は触りましたので、ご報告を。

E1 =A1
E2 =IF(E1=A1,E1,"-")
E3以下はE2をコピペ
B1 =IF(E1="正",C1*D1,"-")

↑のようにするとうまくいきました!
どうもありがとうございます!

>>392
ご指摘の通り、空白セルを参照していますので、上のように替えました。
ありがとうございます!

394 :名無しさん@そうだ選挙にいこう:2008/10/21(火) 17:51:09
>>393
それではうまくいかないと思うのだが…

395 :>>171:2008/10/21(火) 18:09:32
>>389さんに教えていただいた方法で試したのですが、『実行時エラー‘13’型が一致しません。』と出ます(;´д`)

ActiveWorkbook.SaveAs Filename:= _
″C:\Documents and Settings\個人名\My Documents\″ & Cell(″A1″) & ″.xls″

何が間違えかどなたか教えて下さいお願いします。

396 :名無しさん@そうだ選挙にいこう:2008/10/21(火) 19:10:17
>395
1 ”ダブルクォーテーションが全角(すべて全角になってるみたい)
2 Cell(”A1”) ではなく Range("A1").Value


397 :名無しさん@そうだ選挙にいこう:2008/10/21(火) 19:22:55
>>394
たしかにうまくいきませんでした。。。
>>391さんに教えていただいたようにE2=(A2=0,E1,A2)でうまくいきました^^;
続けて質問で申し訳ありませんが、行挿入の際にE2=(A2=0,E1(※R[-1]C),A2)→E2=(A2=0,E1(※R[-2]C),A2)というふうに参照セルがずれていきますが、これはどうしようもないでしょうか?
かといって絶対参照にすると>>390のAのまとめてコピーに支障するのですが・・・
いつ何時でもそのセルの直上のセルを参照するというふうにはできないのでしょうか?

398 :名無しさん@そうだ選挙にいこう:2008/10/21(火) 21:16:35
>>397
OFFSET関数でできるよ。
E2の式の中でE1と書いてある部分をOFFSET(E2,-1,0)に置き換える。
するとE2(自分自身)の真上のセル、という指定になる。

399 :名無しさん@そうだ選挙にいこう:2008/10/22(水) 02:22:43
エクセルのソルバーについて質問させてください。少し長くなりますがご容赦を。

【1 OSの種類         .】 WindowsXP HOME
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可(おてやわらかに)
【5 検索キーワード     】 ソルバー、条件関数、DLL

ソルバーはVBAを用いて条件関数(IFなど)を用いた関数による算出結果に適応すると変化セルが変化しない。
つまり、使えないと
http://support.microsoft.com/kb/819033/ja
にあるのですが、これはCやC++でビルドしたDLLの中に条件関数(if)などあっても適用不可ということなのでしょうか?
試しに、C(WinMG)にてDLLを作製し、VBAから呼び出してifを含まない関数にソルバーを適応したところ、
ソルバーの適応が可能でしたが、ifを含む関数を呼び出すと変化セルがピクリとも変化しません。

上記URL の対策のアドインを購入する以外手がないという感じでしょうか?
もし他の手段がありましたらご教授お願いします。

if文がDLL内があるために、変化セルが動かないのか、変化セルの初期値の
オプティマイズができていないかの原因切り分けだけでもしたいと考えています。

400 :名無しさん@そうだ選挙にいこう:2008/10/22(水) 03:25:02
>>399
VBAからDLLの中にifがあるかどうかなんてチェックする方法はない

401 :399:2008/10/22(水) 05:34:48
>>400

ですよね〜TT

なんでうまくいかないんだろう。。。ありがとうございました。

402 :名無しさん@そうだ選挙にいこう:2008/10/22(水) 10:18:57
>>398
無事できました!ありがとうございます。
>391さん>392さん>394さん>398さん、わかりやすい説明ありがとうございました!

403 :名無しさん@そうだ選挙にいこう:2008/10/22(水) 10:37:52
>>402
A1に入るデータが「正」とか文字だけならいいけど、0が入ってるとおかしくなる。
A列に0が入る可能性はないの?

404 :名無しさん@そうだ選挙にいこう:2008/10/22(水) 11:22:25
>>403
今回A列に0が入る可能性はありません^^
ただ、ためしに0を入力した場合も異常はみうけられませんでした。
「結合セルに含まれる左上以外のセルは"0"と認識する」という風に解釈したのですが・・・

405 :名無しさん@そうだ選挙にいこう:2008/10/22(水) 11:29:09
>>404
1〜4行目のセットをコピーして増やした時、たとえばA5(2セット目の先頭行)に0が入ってるとおかしくなるのよ。
入る可能性がないんなら別にいいけど。

406 :名無しさん@そうだ選挙にいこう:2008/10/22(水) 18:47:25
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 ピボットテーブル 集計

1.ピボットテーブルで項目を追加していくと、項目ごとの「集計」が表示されるのですが、
右クリックで「表示しない」を選択すると消える方法は知っているのですが、
消した「集計」を表示させる方法は一旦フィールド外に消して、再度フィールドに入れるしかないでしょうか?

2.また、最初から「集計」を表示させないようにする設定はあるのでしょうか?

どなたかよろしくお願いします。

407 :名無しさん@そうだ選挙にいこう:2008/10/22(水) 20:27:53
テンプレも使わず、ごめんなさい。

時間を数値に表す方法をお願いします。

1:00(1時間)=1
2:30(2時間30分)=2.5
3:45(3時間45分)=3.75

宜しくお願いします。

408 :名無しさん@そうだ選挙にいこう:2008/10/22(水) 21:04:45
>>407
右の2けたを60で割った値を”:”の左にある数字(時間)に足す

409 :名無しさん@そうだ選挙にいこう:2008/10/22(水) 21:33:51
>>407
*24

410 :名無しさん@そうだ選挙にいこう:2008/10/23(木) 08:24:55
Microsoft ExcelのMVPをこれから目指そうと思ってます。
VBAは出来ませんが、一般機能の知識だけでなれますか。

411 :名無しさん@そうだ選挙にいこう:2008/10/23(木) 09:17:26
>>410
MVPって何?と思ったらそんな制度あるのな
ttp://www.microsoft.com/japan/communities/mvp/becomemvp/default.mspx
ここに受賞者はいなさそーぐぐったほうが確実と思う


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

質問させてください。
250社くらいのデータがあって、1社5〜20件の内容が入ってる縦のセルがあります。
それを、1社ごと1枚のページに印刷設定をしたいんですけど、
挿入で改ページするのが大変なんです。
なにかいい方法はありませんか?


413 :名無しさん@そうだ選挙にいこう:2008/10/23(木) 11:30:05
>>412
VBAがだめなら
メニューの「表示」→「改ページプレビュー」
青い線をドラッグして調節くらいしかない

あとは余白を多くして20件で改ページするようにしておけば少しだけ手間が省けるかもしれない

414 :名無しさん@そうだ選挙にいこう:2008/10/23(木) 12:05:58
>>412
挿入したあと、F4を押せばもう一度挿入ができる
押しっぱなしだと連続で挿入できる
>>413の方が早そうだけど、よければ試してみて

415 :名無しさん@そうだ選挙にいこう:2008/10/23(木) 12:22:51
250社というのが微妙だね。必死でやれば手作業でも何とかなるレベル。
1000社あったらとりあえずVBA覚えろって言うんだけど。
(VBE開いて他人の作ったコードをコピペするだけなら1分もかからん)

実際のデータを見れば、何かデータを区切るいい方法とか
なんか発見できるかもしらんが、、、

416 :名無しさん@そうだ選挙にいこう:2008/10/23(木) 12:24:55
>>413
>>414

ありがとうございます。
地道にコツコツやってみます。

今後この作業を仕事で求められるので、
もしいい案がありましたらご教授いただけると嬉しいです。

417 :名無しさん@そうだ選挙にいこう:2008/10/23(木) 12:27:10
ifとrowでページが変わる行数まで空白、みたいな式を作れなくもないが
作ってもバージョンやらプリンタやら余白サイズに影響されてしまうのがな
これが毎月あるならVBAは絶対に覚えたほうが良いよ。
マクロの記録を少し改良すれば一発で終わらせることができるようになる

418 :名無しさん@そうだ選挙にいこう:2008/10/23(木) 13:21:15
>>412
各社25行程度の固定にできませんか

419 :名無しさん@そうだ選挙にいこう:2008/10/23(木) 13:30:17
>>416
Sub 改ページ設定()
 Dim c As Range
 ActiveSheet.ResetAllPageBreaks
 For Each c In Range("A:A")'←改ページの基準になる列を指定
  If c.Offset(1, 0) = "" Then Exit For
  If c <> c.Offset(1, 0) Then ActiveSheet.HPageBreaks.Add Before:=c.Offset(1, 0)
 Next
End Sub

なんとなく投下してみる
まずはVBAのコピペの仕方から覚えようかw

420 :416:2008/10/23(木) 13:52:42
みなさま、ありがとうございます。
お恥ずかしながら、VBAとは今日初めて知った次第です・・・。
>>419様の内容も全くわかりません。
こんな私は地道に改ページなのでしょうか?
それともすぐに習得できるものなのでしょうか?

421 :名無しさん@そうだ選挙にいこう:2008/10/23(木) 14:10:50
>>420
手順はコレだけ。
ttp://www1.axfc.net/uploader/Img/l/3648534937/Img_23507.jpg
再生ボタン書き忘れたけど、右向きの三角形の奴ね

422 :名無しさん@そうだ選挙にいこう:2008/10/23(木) 14:23:29
いきなりリンク切れですかい

423 :名無しさん@そうだ選挙にいこう:2008/10/23(木) 14:24:24
>>421
手順は合ってる
でも、直リンじゃ見えない・・・w

424 :名無しさん@そうだ選挙にいこう:2008/10/23(木) 14:31:25
すまんorz
これでいいのかなぁ・・
一度開くと直リンで開けるようになって検証しにくいんだよな
ttp://www1.axfc.net/uploader/Img/so/23507


425 :名無しさん@そうだ選挙にいこう:2008/10/23(木) 14:40:40
>>420
>1社5〜20件の内容
問題はこれを一くくりにする方法があるかどうかだよ。
プログラムが自動的に判断できるようなルールがなかったら、VBAとか覚えても無駄。

プログラムで自動化するときにも、これを自動化するために1件1件データを打ち込んでいく必要があるんだ。

自分で組めなくて人に頼む場合でも、そのルールを教えてくれないと手伝ってあげれない。

例えばそれぞれの会社の間に空白行があるとしたら、Ctrl+カーソルでそこにとまることが出来る。
キーボードで操作してマクロに記録し、繰り返し再生するだけでできる。
でもエクセルのマクロは、キーの操作を記録じゃないから何度再生しても自分が操作したセルしか操作してくれない。

UWSCってフリーソフトで記録し、それの先頭にwhile trueを、最後にwendを挿入して再生するとやってくれる。
止めるのはStopボタンかCtrl+F2で。


426 :416:2008/10/23(木) 14:52:37
いま>>424を拝見してやっています。

For Each c In Range("A:A")'←改ページの基準になる列を指定

ここの指定の仕方がわかりません・・・。
おしえていただけますでしょうか?

427 :名無しさん@そうだ選挙にいこう:2008/10/23(木) 14:54:00
>>426
A:AってのはA列全部って意味

428 :416:2008/10/23(木) 15:07:06
会社名がR列にあったので上記のように組んだのですが、
同じ会社名なのに微妙に次ページになったり、2社以上が同ページに入ったりします。
横のセルはそれぞれ異なった内容がA〜Wまで入っているのですが、
これが何か影響しているのでしょうか?


429 :名無しさん@そうだ選挙にいこう:2008/10/23(木) 15:07:20
(A1:A50)って風に指定してもええんやよ

430 :名無しさん@そうだ選挙にいこう:2008/10/23(木) 15:10:34
>>428
行が多すぎると改ページされると思う
そうじゃなければ会社名が微妙に違っていると思う
社名と鰍フ間にあるスペースが半角と全角、とかね
会社名は一度オートフィルで入力しなおすと良いかもしれない


431 :416:2008/10/23(木) 15:26:35
("R1:R5749")といった風に指定しましたが同じ様です。
半角全角も統一しました。
しかし同じ様に区切られてしまいます。
なにか原因は考えられますか?


432 :名無しさん@そうだ選挙にいこう:2008/10/23(木) 15:36:38
表示形式が違う
文字の大きさが違う
=R1=R2とかで比較してTRUEにならない


433 :名無しさん@そうだ選挙にいこう:2008/10/23(木) 15:38:46
余分な改ページは全角に直してから比較してみるか・・・
If c <> c.Offset(1, 0)
 ↓
If StrConv(c, vbWide) <> StrConv(c.Offset(1, 0), vbWide)

違う社名の間に改ページが挟まらないのは原因が思い当たらない・・・

434 :名無しさん@そうだ選挙にいこう:2008/10/23(木) 15:51:28
値で入ってれば、コピーやオートフィルすれば同じになるはずだが・・

アレだ、非表示にはなってない?

違う社名の間に改ページが入らないのは、Q列の幅が狭くR列に入力されてると勘違いしてる・・
ぐらいしか思い浮かばないな
じゃなきゃ表示形式で何を入力しても別の会社名になるようになってるとか
自分で書いててもありえないケースしか思い浮かばないぜ

435 :416:2008/10/23(木) 15:52:50
Sub 改ページ設定()
Dim c As Range
ActiveSheet.ResetAllPageBreaks
For Each c In Range("R1:R5749")
If StrConv(c, vbWide) <> StrConv(c.Offset(1, 0), vbWide)
If c <> c.Offset(1, 0) Then ActiveSheet.HPageBreaks.Add Before:=c.Offset(1, 0)
Next
End Sub

だとコンパイルエラーが出てしましました・・・

436 :名無しさん@そうだ選挙にいこう:2008/10/23(木) 15:56:01
説明サボりすぎたな

If StrConv(c, vbWide) <> StrConv(c.Offset(1, 0), vbWide)
If c <> c.Offset(1, 0) Then ActiveSheet.HPageBreaks.Add Before:=c.Offset(1, 0)
では無く
If StrConv(c, vbWide) <> StrConv(c.Offset(1, 0), vbWide) Then ActiveSheet.HPageBreaks.Add Before:=c.Offset(1, 0)

437 :416:2008/10/23(木) 16:00:53
>>436
できました!!
できなかった原因はわかりますでしょうか!?


438 :名無しさん@そうだ選挙にいこう:2008/10/23(木) 16:01:50
ttp://www1.axfc.net/uploader/Img/l/5645286549/Img_23507.jpg

439 :名無しさん@そうだ選挙にいこう:2008/10/23(木) 16:02:08
全角と半角で違うところがあった
コピーして直せと言ったろうに

440 :名無しさん@そうだ選挙にいこう:2008/10/23(木) 16:06:18
すみません・・・見た目的に一緒だったもので。
反省します。
くれくれだった私に、丁寧に教えていただきまして本当にありがとうございました。
どうしても出来ずに午前中にギブアップ宣言を上司に出したのですが、
今日中にちゃんとしたデータを提出できそうです。
それとともにマクロに興味がでてきました。
皆様、こんな難しいこと、独学なのですか?


441 :名無しさん@そうだ選挙にいこう:2008/10/23(木) 16:07:54
>同じ会社名なのに微妙に次ページになったり、2社以上が同ページに入ったりします。

前者は全角と半角の違い
後者は今ので出なかったなら気のせいw

>>439
たくさん有ったとしたら手動で改ページ挿入した方が早いだろw
目的を見失うなよ

442 :名無しさん@そうだ選挙にいこう:2008/10/23(木) 16:09:29
【1 OSの種類         .】 WindowsXP SP2
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 全くわかりません
【4 VBAでの回答の可否】 否 (VBAでしか方法が無いのであれば勉強します)
【5 検索キーワード     】 参照 IF 

質問をさせてください。

まずシート1の[ C1〜C100 ]に100種類の品名が書いてあるとします。
これに連番を振ります(隣のD列を使ってD1〜D100に1〜100)
次にシート2の[ E1〜E100 ]にデータを入力するのですが、この時に

 E1に(50)と入れれば、シート1のC50の品名が出るようにする
 E1に(80)と入れれば、シート1のC80の品名が出るようにする

この様に参照入力する事は可能なのでしょうか?
宜しくお願いします。

443 :名無しさん@そうだ選挙にいこう:2008/10/23(木) 16:13:44
>同じ会社名なのに
前後の空白とりのぞけよー(マクロ的な意味で)


独学としてもヘルプもサンプルも充実してるからね。
それでも外部からマクロ呼ぶ方法はぐぐっても出てこなかったけど。
Publicで宣言するんだけど。
他の情報が多すぎて埋もれてしまうから、そういうのはマイクロソフトのサイトとかから検索するか、
2chで聞いた方が早い。

444 :名無しさん@そうだ選挙にいこう:2008/10/23(木) 16:17:13
>>442
INDIRECTを使う
使い方はヘルプ参照

445 :名無しさん@そうだ選挙にいこう:2008/10/23(木) 16:20:28
>>442
入力欄に代入ならマクロしかないよ。
入力欄の横のセルに表示なら普通にシートの計算式(INDIRECT?)でいける。


446 :名無しさん@そうだ選挙にいこう:2008/10/23(木) 16:23:43
>>441
定期的にやるような業務なら一度見直したほうが良いと思うよ
今回限りならそれこそ最初から最後までマクロな使わないほうが早いけどね
ってコピーするより集計なりピボットにほおりこんだ方が分かりやすかったな
やっぱり俺うんこだな


447 :名無しさん@そうだ選挙にいこう:2008/10/23(木) 16:26:12
>>442
lookupかmatchでもok

448 :名無しさん@そうだ選挙にいこう:2008/10/23(木) 16:34:31
>これに連番を振ります(隣のD列を使ってD1〜D100に1〜100)
見落としてたな・・・
>>447の方法がいいかとw

449 :名無しさん@そうだ選挙にいこう:2008/10/23(木) 17:29:13
442です。お礼が遅れて申し訳ありません。

>>444-445さん、>>447-448さん

ご回答ありがとうございます。
教えて頂いた関数を調べた所、LOOKUP関数が用途に合いそうなので
これを使って作ってみました。
理解するのに時間かかりましたが、無事完成しました。
回答して下さった方々、色々とお世話になりました。




450 :407:2008/10/23(木) 19:35:08
>>408,>>409
出来ました。
遅くなりましたが、アリガト。

451 :名無しさん@そうだ選挙にいこう:2008/10/23(木) 20:56:24
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 はい
【5 検索キーワード     】 1.オートフィルタ 範囲  2.入力規則 Excel


1.
複数列、複数行にランダムに入力があり、その中から「入力がある行」、または「入力がない行」を表示させることはできないでしょうか?
複数列に対してまとめてオートフィルタをかけるイメージです。

2.
A1に入力がある場合B1に入力できないようにしたいです。


どなたかよろしくお願いします。

452 :名無しさん@そうだ選挙にいこう:2008/10/23(木) 21:07:57
>>451
1は不可能。別シートにデータを詰めながらコピーするしかない。

453 :名無しさん@そうだ選挙にいこう:2008/10/23(木) 21:29:25
作業列を作ってそこに行のデータを&で繋いで、空白なら入力が無い行だと判定しる。
1も2もvbaで簡単にできるかもしれないけど、漏れには無理。

454 :名無しさん@そうだ選挙にいこう:2008/10/23(木) 21:42:11
>>451
1.
VBAでEndプロパティ調べれば一発

2.
イベントでA1に変更があった時に、A1の入力状態に応じてB1のロックを操作してシートを保護すれば良し

簡単だからVBA使えねーとか言わずに、このくらいは勉強して自分で書いてみろ

455 :名無しさん@そうだ選挙にいこう:2008/10/23(木) 22:16:27
教えてください。
【1 OSの種類         .】 Windowsxp
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい(少しだけ)
【4 VBAでの回答の可否】 可
【5 検索キーワード 】  エクセル 参照範囲 sumif

  A列 B列 C列  D列
1行 1  1  1   =sum(A1:C1)
2行 1  1  1   =sum(B2:CB)
3行 1  1  1   =sum(C1)
4行 1  2  3

上の表の4行目にD列の計算の範囲に入っている数字だけを足すことができる
計算式又はVBAを入れたいのですが、可能でしょうか?
例えばA列の4行目にはD列の足し算の計算範囲に入っているのは
A1だけなので1となり、B列の4行目はB1とB2がD列の足し算の計算範囲
となっているので2となるいう風です。
いろいろ考えましたが思いつきません。

456 :名無しさん@そうだ選挙にいこう:2008/10/23(木) 22:19:16
>>455
全くよくわからない
=sum(B2:CB)はエラーが出るしD2D3D4、それ以下もあるなら全て書き出してほしい

457 :名無しさん@そうだ選挙にいこう:2008/10/23(木) 22:36:40
>>455
作業シートに計算式をコピーして、元の数値を以下のようにすれば、どことどこが足されたか一発でわかる。

  A列 B列 C列  D列
1行 1  2  4   =sum(A1:C1)
2行 1  2  4   =sum(B2:CB)
3行 1  2  4   =sum(C1)

別解としてFormulaプロパティを自力で構文解析

458 :451:2008/10/23(木) 22:38:50
>>454
ごめんなさい・・・
両方とも調べたのですが全然だめでした・・・
特に1.の方はendプロパティでどうできるかも全然・・・

459 :名無しさん@そうだ選挙にいこう:2008/10/23(木) 22:43:07
>>455
いったんD,E,Fに、A,B,Cを条件コピーする。
条件コピーはIfの代入式でいい。
それから普通に合計すれば除外されて計算される。

  A列 B列 C列 D列 E列 F列 G列
1行 1  1  1  1  1  1   =sum(D1:F1)
2行 1  1  1  0  1  1   =sum(D2:F2)
3行 1  1  1  0  0  1   =sum(D3:F3)
4行 /  /  /  =sum(D1:D3)  =sum(E1:E3)  =sum(F1:F3)    =sum(G1:G3)

見た目をA,B,Cだけにしたい場合、少なくともA,B,CとD,E,Fは別の表にする必要がある。
どうやって計算を除外するかと言うと、D,E,Fの0に該当する部分を、TEXT関数などで文字として表示する。
文字は計算から除外される。
文字と数値は表示位置が違うので、右寄せで設定する。


460 :名無しさん@そうだ選挙にいこう:2008/10/23(木) 22:43:43
  A列 B列 C列  D列
1行 1  1  1   =sum(A1:C1)
2行 1  1  1   =sum(B2:C2)
3行 1  1  1   =sum(C3)

の間違いだろうなあ。そうでないとめちゃめちゃ大変なことになる。

461 :名無しさん@そうだ選挙にいこう:2008/10/23(木) 22:44:08
>>456
=sum(B2:CB)は=sum(B2:C2)の間違いです。
実際の表は行数、列とも数が多いので簡略化したつもりです
が説明が下手ですいません。
D列の足し算の範囲となっているセルだけを足す条件つきの足し算
を4行目に作りたいのが目的です。




462 :名無しさん@そうだ選挙にいこう:2008/10/23(木) 23:00:41
計算したい列が63列以下(BK列まで)なら、数値を以下のように2のべき乗にすれば、
計算結果から何列目と何列目が足されたか逆算することが可能。

A列 B列 C列 D列 E列
 1  2  4  8  16

463 :名無しさん@そうだ選挙にいこう:2008/10/23(木) 23:28:00
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 Googleやヘルプでの検索キーワード : エクセル2007 マクロ フォルダ 保存
エクセル2007にて、シート上に保存したいフォルダのアドレスと保存したいファイル名があります。
エクセル2003では実際に下記マクロで保存できましたがエクセル2007では拡張子が表示されず保存できません。
まずエクセル2003のマクロです。これは動きます。セルの入力は下記です。
セルのA1=フォルダアドレス=C:\Documents and Settings\ユーザー名\デスクトップ
セルのB1=保存したいファイル名=ABCDE

Sub 名前をつけて保存_フォルダ指定()
'
' 名前をつけて保存_フォルダ指定 Macro
'
MySavePath = Application.GetSaveAsFilename(Range("B1").Value & "\" & Range("A1").Value, "Microsoft Office Excel ブック (*.xls), *.xls")

'
End Sub

 次に2007のマクロです。
Sub 名前をつけて保存_フォルダ指定()
'
' 名前をつけて保存_フォルダ指定 Macro
'
MySavePath = Application.GetSaveAsFilename(Range("B1").Value & "\" & Range("A1").Value, "Excel マクロ有効ブック (*.xlsm), *.xlsm")

'
End Sub
2007では、ファイルの種類と拡張子を変えてみました。保存の画面まではいくのですが、拡張子がファイル名に表示されず保存できません。
また自分で拡張子を付けてもダメです。どうかよろしくお願いします。


464 :名無しさん@そうだ選挙にいこう:2008/10/23(木) 23:28:34
>>455
D4にD1からD3の足し算の結果を出すだけ?
それともD4にもD1からD3のようにsumが入っているの?

465 :名無しさん@そうだ選挙にいこう:2008/10/23(木) 23:36:19
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 Excel オートフィルタ グループ

下記のようにセルに入力されている場合
名前でオートフィルタをかけて「あ」を選んだら「あ-1」「あ-2」「あ-3」を表示させることはできますか?
白文字で「あ」を入力する、というのも考えたのですが検索にもひっかかってほしくないんです。

名前    内容
あ      あ-1
       あ-2
       あ-.3
い      い-1
       い-2
       い-3
う      う-1
       う-2
       う-3


466 :名無しさん@そうだ選挙にいこう:2008/10/23(木) 23:49:37
>>465
「内容」の方にオートフィルタかけて、
オプション>「あ」を「含む」で拾えば?

467 :名無しさん@そうだ選挙にいこう:2008/10/23(木) 23:55:55
>>464
D4にはなにもはいってません。
A4に1,B4に2,C4に3
と出るような式またはマクロを作りたいのです。


468 :名無しさん@そうだ選挙にいこう:2008/10/24(金) 00:10:17
>>467
こう言う事かな?
=SUM(D1:D3,A4:C4)

469 :名無しさん@そうだ選挙にいこう:2008/10/24(金) 00:24:08
>>467
もしかして、パズルか何かを解こうとしてる?

470 :名無しさん@そうだ選挙にいこう:2008/10/24(金) 00:30:27
>>467
そういうのを一発で求める方法は存在しないので、もっと具体的に何がやりたいのか、
データと計算式は何を表現しているのか書かないと、回答にはたどりつけないと思うぞ。
つーか、最初から

  A列 B列 C列
1行 1  1  1
2行 0  1  1
3行 0  0  1

みたいに入力しない理由は?D列の計算式はどっから持ってきたの?

471 :467:2008/10/24(金) 01:48:20
>>470さま
皆さんが真剣に考えていただいているのに私の説明が悪くて
大変申し訳ないです。
         4日  5日  6日   清算時間計   
          A列  B列  C列   D列
   Aくん1行目 1Hr  1Hr   1Hr     3Hr(=sum(A1:C1))(4〜6日分を7日に支払った)
   Bくん2行目 1Hr  1Hr   1Hr   2Hr(=sum(B2:C2))(5〜6日分を7日に支払った)
   Cくん3行目 1Hr  1Hr   1Hr   1Hr(=sum(C1))(6日分を7日に支払った)
清算時間計 4行目
  
Aくんは4〜6日分のアルバイト代支払い
Bくんには5〜6日分を支払い、C君には6日分を7日に支払った場合
A列、B列、C列の4行目に清算した時間の合計が出るようにしたいのです。
D列は人や期間で合計式が変わるのでそのつど計算式を手入力してます。
真意としては人ごとの支払った時間に対応する日ごとの清算時間計を
自動で入れたいのです。
表ではAくん、Bくん、Cくんと3人ですが実際は100人ぐらいおり
列も3日ではなく実際はもっと長いです。
D列の計算式をDirectPrecedentsをつかって参照元の文字を赤くして
赤くなった数字を足すマクロを組めばできるのかなあというところまで考え
試行錯誤しているところです。

472 :名無しさん@そうだ選挙にいこう:2008/10/24(金) 02:02:40
>>471
だから>>459の考え方でいけるでしょ。
列が長いなら別のシートでやればいいだけ。
給料払ったかどうかも分からないなんてそこで働く人は気の毒ですね。

労働時間と給与払いは別々の表にするでしょう。
紙に書いてやる方法をまず考えてください。
働いたら働いたと表に書き、払ったら払ったと表に書くでしょう。
SUM()でいきなり計算するなんて論外ですよ。


473 :名無しさん@そうだ選挙にいこう:2008/10/24(金) 02:18:29
>>471
どうして無関係なところに1Hrって入れてるの?
働いてないところは0か空白にするのが普通だと思うんだけど。
これなら縦横の計算も一発でできるし、D列の計算式をいちいち変える必要もない。

         4日  5日  6日   清算時間計   
         A列  B列  C列   D列
Aくん1行目 1Hr  1Hr   1Hr   =SUM(A1:C1)
Bくん2行目.     1Hr   1Hr   =SUM(A2:C2)
Cくん3行目           1Hr   =SUM(A3:C3)

474 :467:2008/10/24(金) 02:48:14
>>472 別シートのIF式をどう作れば良いのかがわからなかったの
ですが、アドバイスいただき再度考えたらA列とD列を足した
結果がエラーならA列の数字、エラーでなければ0にすればできそうです。
何とか解決しそうです。ありがとうござました。
あと、誤解させてしまいましたが実務ではなく課題です。
実際、どう使用するのか私にもわかりません。
給与の支払い等は別部門できちんと処理しておりますのでご安心ください。
>>473 1Hrは働いた時間です。D列は支払った時間の合計で働いた
時間の合計ではありません。
D列の計算式が人により異なるため頭を悩ませてました。
私のわかりにくい説明に対し、
真剣に回答いただきありがとうございました。







475 :名無しさん@そうだ選挙にいこう:2008/10/24(金) 12:35:40

【1 OSの種類         .】 Windows xp sp3
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 excel 左を抽出

下記のように数字が並んでいます。

111.222.333.444-555.666.777.888

-より左の
111.222.333.444   のみを抽出させたいです。

ちなみにこの数式をいれたら抽出されず丸々コピーの状態になってしまいました

=IF(COUNTIF(A1,"*-*-*"),LEFT(A1,FIND("-",A1,FIND("-",A1)+1)-1),A1)

476 :名無しさん@そうだ選挙にいこう:2008/10/24(金) 12:44:16
>>475
COUNTIF(A1,"*-*-*")
これ何がしたいの?
=LEFT(A1,FIND("-",A1)-1)
これだけでいいはずなのに

477 :名無しさん@そうだ選挙にいこう:2008/10/24(金) 12:50:25
>>476
出来ました!!

ありがとうございます!

countifはよくわかってませんでした;;

478 :困っています。:2008/10/24(金) 14:58:18
>>274
Alt+F11でVBEを開いてシートやモジュールをすべて見ても何も無かったです。
アドインはチェックが付いてる項目は御座いませんでした。

>>275
マクロウイルスのチェックをしてみましたが感染していませんでした。
ご親切に有り難う御座いました。

空白セルのハイパーリンクを削除しても、いつの間にかまた
ハイパーリンクが入っています。

確かに、そのリンク先は仕事で使っている物で、
他のセルには、そのリンクが必要です。
ただ、不要な所にも、いつの間にか入っています。
別のブックのハイパーリンク先が入って来る事も有ります。

オートフィルをよく使うので何か関係が有ると思い
色々試してみましたが原因は分かりませんでした。
お手上げ状態です・・・

479 :名無しさん@そうだ選挙にいこう:2008/10/24(金) 15:51:26
>>478
これ以上手間かけるのも時間がもったいないし
クリーンインストールをお勧めする

エクセルの再インストールじゃ直らない気がするし

480 :名無しさん@そうだ選挙にいこう:2008/10/24(金) 16:01:19
【1 OSの種類         .】 Windowsxp
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 論理 文字列

A1が5以上の時はA1を表示、でなければ0とするとき
=(A1>=5)*A1
で表示できますが、これを文字列に当てはまることは出来ますか?
A1が"あ"の時はA1を表示、でなければ0又は表示しない、等の条件です

あまりifで入れ子を使いたくない時にこういう書き方をするのですが、
無理でしょうか?

481 :名無しさん@そうだ選挙にいこう:2008/10/24(金) 16:22:28
=LEFT(A1,(A1="あ"))
とか

482 :名無しさん@そうだ選挙にいこう:2008/10/24(金) 16:41:23
>>481
すごい!
小出しの条件非常に申し訳ありません・・この「あ」は一文字とは限らないんです
例が悪かったですね
とりあえずleft、ifと組み合わせて使ってみます

483 :名無しさん@そうだ選挙にいこう:2008/10/24(金) 17:07:30
=LEFT(A1,(A1="およよ")*3)
とか
=LEFT(A1,(A1=F1)*LEN(F1))
とか
でもこれだとifの方が良sage

484 :名無しさん@そうだ選挙にいこう:2008/10/24(金) 17:16:27
>>483
=LEFT(A1,(A1="およよ")*LEN(A1))
改変して使わせていただきます!ありがとうございました

485 :名無しさん@そうだ選挙にいこう:2008/10/24(金) 18:03:15
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    】 はい
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 エクセル グラフ

ヒストグラムを作っています

A B C
85 0 0 0
90 3 0 0
95 2 2 0
100 1 4 4
105 0 0 2

そのままグラフにすると、数字の縦線上に棒が表示されるのです
数字と数字の間に棒を表示したいのですが分かる人教えて下さい

┌─┐
│ │
│ │
85 90

486 :名無しさん@そうだ選挙にいこう:2008/10/25(土) 00:28:40
>>266
Excel2007 遅レスですが m(_ _)m
手動で「その他の色」を選択すると、「最近使った色」に選択した
色が出てくるのですが、このForm経由でも、別途手動の手順を
マクロで記録したものでやっても、「最近使った色」に色が登録
されません。
最近使った色を登録するマクロって誰か知ってますか?

つか、このForm便利です。そのままクイックアクセスツールバーに
マクロ登録しました。

487 :名無しさん@そうだ選挙にいこう:2008/10/25(土) 14:14:40
「セルの色を変えるVBAを教えて下さい。」だと食い付きがいいのに、ヒストグラムだと誰も反応しない。

488 :名無しさん@そうだ選挙にいこう:2008/10/25(土) 14:23:40
使わないから知らないんだろ
何の不思議も無い

489 :名無しさん@そうだ選挙にいこう:2008/10/25(土) 15:58:28
婉曲的に馬鹿にされてることに気付けアホ

490 :名無しさん@そうだ選挙にいこう:2008/10/25(土) 16:29:55
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 そこそこ。勉強中です
【4 VBAでの回答の可否】 はい
【5 検索キーワード     】 入力規則 offset indirect 名前 変動 反映されない

[入力シート]と[あかさたな別シート]があります。
あかさたな別シートには、あ行の表、か行の表、さ行の表…と、
入力シートにドロップダウンリストとして使用するために、これらの表を名前を定義して作成しています。

その名前の定義も、項目が増減することを仮定して、
[=OFFSET(あかさたな別!$A$2,0,0,COUNTA(あかさたな別!$A:$A)-1,1)]
と名前を設定しています。

入力シートにも、表はあり、その表には[あかさたな列(A2と仮定します)]と[単語列(B2と仮定します)]があります
あかさたな列には、入力規則のリストで[あ行,か行,さ行…]と設定し、
単語列には、入力規則のリストで[=INDIRECT(A2)]とし、あかさたな列の値によって、リストを変動させたいのです。

しかし、あかさたな列で[あ行]と選択しても、単語列でドロップダウンリストが現れてくれません。
ためしに、単語列の入力規則のリストに[=あ行]と設定すると、ちゃんとあ行のドロップダウンリストが表示されます。

なぜこういうことが起こってしまうのか、対応策があるのか
らちがあかなくなって質問しました。お願いいたします。
↓例です
http://www2.uploda.org/uporg1746636.xls.html


491 :名無しさん@そうだ選挙にいこう:2008/10/25(土) 17:20:05
>>490
分からん
入力規則の=INDIRECT($A$5)
を決定した時点でエラーが出てるね

ただ、あ行リストを同一シートにしたところ出来た("あ行"が参照してる場所も変えて)
名前の定義をしていても関数を使って別シートにまたがると参照できないのかも・・?
バグってやつかなぁ

492 :名無しさん@そうだ選挙にいこう:2008/10/25(土) 17:53:10
webクエリでcgiからのデータを読み込むことはできますか?
http://tenhoranking.xrea.jp/cgi-bin/search.cgi?name=まっしろ&db4=1
URLだけ入れてみたら取り込むデータを選択する画面がまっしろになっちゃいました。

以下テンプレです:
WinXP / Excel2003 / VB.netなら使えるがVBAは経験わずか(今回初めてまともに使おうとしてる) / むしろ希望 / Webクエリ


493 :名無しさん@そうだ選挙にいこう:2008/10/25(土) 17:55:47
【1 OSの種類         .】 Windows vista
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】いいえ
【4 VBAでの回答の可否】否
【5 検索キーワード     】 Excel 他シート 読み込み

a.xlsに入力されているデータをb.xlsでカウントしたいのですが、
どうやったらb.xlsにa.xlsのデータを読みこめますか?
教えてください

494 :名無しさん@そうだ選挙にいこう:2008/10/25(土) 17:59:49
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
基本的なことかもしれませんが、excelで複数のセルに同じ処理を
するにはどうすればいいでしょうか?
特定の複数のセルの数字を1/1000にしたいのです。
具体的には↓のようになっていて、上2行を下2行と同じ桁にしたいわけです。
1000000 1000000 1000000
1000000 1000000 1000000
1000  1000  1000

495 :名無しさん@そうだ選挙にいこう:2008/10/25(土) 18:01:29
>>494
1000 というデータを同じだけ作ってコピーし、1000分の1にしたい欄を選択・右クリックで「形式を選択して貼り付け」
ダイアログで「値・除算」にチェック入れてOKする

でどうでしょう?

496 :名無しさん@そうだ選挙にいこう:2008/10/25(土) 18:28:46
>>493
=COUNT([b.xls]Sheet1!$A$1:B10)
とか
複数シートなら
=COUNT([b.xls]Sheet1!$A$1:B10)+COUNT([b.xls]Sheet2!$A$1:B10)
とか

497 :名無しさん@そうだ選挙にいこう:2008/10/25(土) 18:29:17
【OS】XP
【バージョン】2003
【VBAが使えるか】初心者
【VBAでの回答の可否】コード依頼です
【検索キーワード】エクセル VBA 項目 集計

コード    名前  C列 D列 E列 F列 G列 H列 I列  J列  K列    年月
00000001  ○○  1   0   0   1  0   1   2   0   2   2007年9月
   ・      ・  ・   ・   ・   ・  ・   ・   ・   ・   ・       ・
00000015  △△  6   0   0   6  12  32  23  896  1039 2007年10月
   ・      ・  ・   ・   ・   ・  ・   ・   ・   ・   ・       ・
00000006  △×  110  0   0  120 69  59  514  606 1040  2007年11月

このようにA列からL列(1行目はフィールド名)、行が毎月追加される表があるのですが、コードを2つ書いて欲しいです。
■1つは年月(L列)毎でC列からK列の合計を↓のように出力したいです。

年月      C列計 D列計 E列計 F列計 G列計 H列計 I列計 J列計 K列計
2007年9月   100   200  150   210  1000   500  200   140  10000
2007年10月   ・    ・    ・    ・    ・

■2つ目はコード(A列)毎で、C列からK列を集計したいのですが、コードは毎月更新され、先月と同じコードがあったりなかったり、新規追加されたりとまちまちです。
また、コードと名前(B列)は原則1対1で対応しているのですが、稀に名前の方に表記間違いがあったりと例外がありますのでコードと名前が完全一致したら集計対象にする、といった風にしたいです。

コード    名前  C列計 D列計 E列計 F列計 G列計 H列計 I列計 J列計 K列計
00000000  ○○  100   200   150  210   1000  500   200  140  10000
00000006  △×   ・    ・   ・     ・
00000015  △△   ・    ・   ・     ・
00000015  ○△   ・    ・   ・     ・

■1と2の結果は別のシートに出力したいです。
1:シート名「A」 2:シート名「B」
是非ともよろしくお願い致します。

498 :名無しさん@そうだ選挙にいこう:2008/10/25(土) 18:30:01
>>493 >>496
実はシート知らないから複数のファイルを使ってたりして

499 :名無しさん@そうだ選挙にいこう:2008/10/25(土) 19:03:38
>>497
意図してるところが完全にはわからないんですけど、
コードと名前が完全一致、ってのはどういう意味ですか?

500 :名無しさん@そうだ選挙にいこう:2008/10/25(土) 19:04:46
>>495
即答ありがとうございます。とりあえずやってみます。

501 :名無しさん@そうだ選挙にいこう:2008/10/25(土) 19:11:12
>>495
試してみたらあっさりと希望どおりにできました。感謝!

502 :497:2008/10/25(土) 19:16:31
>>499

わかりにくい書き方で申し訳ないです。

コード     名前  C列
00000015   △△
00000015   △△
00000015   △△
00000015   ○△

上記のように、コード(数字8桁)が一致していても、名前(文字列)が異なる場合が稀にあるので
その場合は

コード     名前  C列計
00000015   △△
00000015   △△
00000015   △△

コードと名前が完全に一致している、3行分だけのC列からK列の合計を集計して頂きたいのです。

00000015   ○△
の行はそのまま転記するといった形になります。

また、わからない事があれば聞いてください。

503 :名無しさん@そうだ選挙にいこう:2008/10/25(土) 19:28:02
>>502
>また、わからない事があれば聞いてください。

お前は教わるほうじゃないのか

504 :490:2008/10/25(土) 19:48:57
>>491
ありがとうございます。
出来ないですか。

しかし、同一シートに移して、同じことやってみたんですが
同じ現象が起きました。

もう一度、試行錯誤してみます

505 :名無しさん@そうだ選挙にいこう:2008/10/25(土) 20:13:06
【1 OSの種類】 Windows vista
【2 Excelのバージョン】 Excel 2007
【3 VBAが使えるか】 与えられたコードを用いることはできる
【4 VBAでの回答の可否】 可
【5 検索キーワード】 列挙 数字 一つづつ セル ペースト

移民の数を資料のWebページから持ってきて、
それをグラフにしようとしているのですが、
なんとか一度にまとめてコピペできないかと思っているのですが、
6,668 6,679 7,017 7,119 7,197 7,841 8,259 9,659
のようにコピーされた数字を、
一つのセルに数字を一つづつ入れるように
一度にペーストする方法はないでしょうか。
回答よろしくお願いします。

506 :名無しさん@そうだ選挙にいこう:2008/10/25(土) 20:18:09
>>505
貼付けた後も、区切り位置を使えばいいんじやね?

507 :名無しさん@そうだ選挙にいこう:2008/10/25(土) 21:00:57
>>505
対象となるWebサイト上で、表ではなくスペース区切りになっているということでしょうか?
メモ帳などに一旦ペーストし、スペースをタブに変換するのが最もお手軽かと思います。

508 :名無しさん@そうだ選挙にいこう:2008/10/25(土) 21:08:16
区切り位置のほうが早いだろ・・

509 :名無しさん@そうだ選挙にいこう:2008/10/25(土) 21:46:58
>>506
おおおお
できました!ありがとうございます!
今までの印刷→手打ちの労苦は一体・・・

>>507
その通りです。ご指導ありがとうございます。
しかし>>506さんの方法で簡単に上手くいったので、
今回はそれを使っていきたいと思います。

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

よろしくお願いします。関数はほとんど使った事がありません。

例:シートA
日 |曜日|店名|商品
ーーーーーーーーーーーーー
3 |月|電気屋|蛍光灯
6 |木|弁当屋|弁当
7 |金|本屋 |雑誌
13|木|電気屋|乾電池
17|月|電気屋|電球

シートAに上記のように、日付曜日別にどこの店で何を買ったかという表があります。
これをシートBで下記のように、シートAの文字を参照してどの店に何回行ったか?
というのを簡単に計算できる関数はあるでしょうか?

例:シートB
店名 |行った回数
ーーーーーーーーーーー
電気屋 |3
コンビニ |0
本屋 |1
弁当屋 |1

シートAに"電気屋"という文字があったら+1をして合計を出す。
色々試しましたが分かりませんでした。よろしくお願いします。

511 :名無しさん@そうだ選挙にいこう:2008/10/25(土) 22:17:13
>>510
合計回数だけなら COUNTIF を調べてみな。

512 :510:2008/10/25(土) 22:29:43
>>511
できました!ありがとうございます!
これで一つ一つ数えなくてすみます。助かりました。

513 :名無しさん@そうだ選挙にいこう:2008/10/25(土) 23:36:24
エクセル2003
ウインドウズXP使用です

 A    B     C   ←列

A-1  りんご   100
A-1  みかん   200
B-2  いちご   300
B-2  みかん   100
C-2  ぶどう   200


このようなデータがあり 

A列のデータの指定した物をすべて抜き出して表示させたいのです。
よろしくお願いします。

例: A-1 と指定した場合 A-1りんご 100とA-1 みかん 200 を表示。
VLOOKUPでやってみたらかなり思ってるものと近い形にできるのですが
1行しか参照できないので駄目でした。

514 :513:2008/10/25(土) 23:42:21
>A列のデータの指定した物をすべて抜き出して表示させたいのです。
>よろしくお願いします。

訂正します
A列に入力してあるコード(A-1やB-2など)を同一なものを抜き出して表示させたいのです。

VLOOKUPでいうと
A1セルを参照元として表示エリアを作り
A1にコードA-1を入力すると
表示エリアにA-1の項目を表示させるということです。


515 :名無しさん@そうだ選挙にいこう:2008/10/25(土) 23:48:41
オートフィルタじゃだめなのか?

516 :510:2008/10/26(日) 00:02:24
さらに質問です。
今度は値段も加えて計算できる方法が知りたいです。

例:シートA
日 |曜日|店名|商品|値段
ーーーーーーーーーーーーーーーーー
3 |月|電気屋|蛍光灯|1000
6 |木|弁当屋|弁当 |300
7 |金|本屋 |雑誌 |500
13|木|電気屋|乾電池 |400
17|月|電気屋|電球 |200

例:シートB
店名 |使用金額
ーーーーーーーーーーー
電気屋 |1600
コンビニ |0
本屋 |500
弁当屋 |300

シートAの店名を参照して使用金額を合計してシートBで表示したいです。
よろしくお願いします。

517 :513:2008/10/26(日) 00:09:59
データが縦に膨大にあり
見辛いため
オートヒィルタだと厳しいのです

518 :名無しさん@そうだ選挙にいこう:2008/10/26(日) 00:13:35
>>516
ピボットテーブルでなんでもできる

519 :名無しさん@そうだ選挙にいこう:2008/10/26(日) 00:22:32
>>517
やりたいことがよく分からない
オートフィルタにしても他の何にしても同じ結果になると思うが


520 :510:2008/10/26(日) 00:32:53
>>518
ありがとうございます。
ピボットテーブルやろうと思いましたがよく分かりませんでした。
関数では出来ないでしょうか?

521 :名無しさん@そうだ選挙にいこう:2008/10/26(日) 00:34:22
>>516
sumif

522 :名無しさん@そうだ選挙にいこう:2008/10/26(日) 00:38:53
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 マクロ セキュリティレベル 設定 などなど

問題点 マクロの記録ができない
セキュリティレベルのマクロの設定は全てのマクロを有効にした
それでもマクロの記録ができなかったので信頼できる場所でフォルダを指定した
→できない

誰か助けてください。


523 :510:2008/10/26(日) 00:41:08
>>521
ありがとうございます!できました!

524 :名無しさん@そうだ選挙にいこう:2008/10/26(日) 01:15:48
何度も失礼します。
下記の表のようにシートAに店別に合計が出してあります。
それをシートBで店別の赤字と黒字の回数を計算したいんですが、

例:シートA
2007年|合計|
ーーーーーーーー
A店| -30000|
B店|+20000|
C店|+10000|
D店| -10000|

2008年|合計|
ーーーーーーーー
A店|+10000|
B店|-20000|
C店|+40000|
D店|-20000|

例:シートB
店名|黒字|赤字
ーーーーーーーーーー
A店|1回 |1回
B店|1回 |1回
C店|2回 |0回
D店|0回 |2回

シートAの店名を参照し、合計数値が+であればシートBの黒字に+1、
-であれば赤字に+1というような計算を関数でできますか?

店名を参照するやりかたは分かりましたが、
数値の正負を判断し黒字赤字を+1するって事がよく分かりませんでした。よろしくお願いします。

525 :名無しさん@そうだ選挙にいこう:2008/10/26(日) 01:25:04
何度もくどい!
もう答える気しねー
全ての関数ヘルプ読んでからコイヤ!

526 :名無しさん@そうだ選挙にいこう:2008/10/26(日) 01:36:16
>>525
ですね。ごめんなさい。
自分で読んでもどれを使ったらいいか、
よく分からなかったからここで聞いてみました。

もう1回自分でも考えてみますが、
もしバカな自分に、手助けしてくれる方いましたらお願いします。

527 :名無しさん@そうだ選挙にいこう:2008/10/26(日) 01:42:29
>>524
例:シートA
2007年|合計|
ーーーーーーーー  A+  A-  B+  B-  C+  C-  D+  D-
A店| -30000|        1
B店|+20000|            1   
C店|+10000|                   1
D店| -10000|                               1

もうこんな感じで作って例で合計
あとはこれを応用すればどんな集計でもできるだろーからこれで池


528 :名無しさん@そうだ選挙にいこう:2008/10/26(日) 01:44:14
>>522
とりあえず確認
記録したことはある?
以前は出来てた?
それは同じPC?


529 :525:2008/10/26(日) 01:45:27
>>526
はー!?
COUNTIFもSUMIFもヘルプ見ときゃわかるだろ!
見てねーくせに適当な事各なボケ!!
それにな、言っとくが今回はおバカじゃ理解できないくらいの難易度が跳ね上がってるんだよ!
最初からこの質問なら丁寧に答えるてやったのによ!

えーい大サービスだ!
SUMPRODUCTでググレカス!

530 :名無しさん@そうだ選挙にいこう:2008/10/26(日) 01:48:47
>>529
まるで全部自分が回答したみたいな物言いだな。

>>510レベルの奴にsumproductでググらせて、答えが導き出せるわけないだろうに。

531 :529:2008/10/26(日) 01:50:59
怒りで文章グタグタのくせにage忘れたぜ!

532 :名無しさん@そうだ選挙にいこう:2008/10/26(日) 01:57:57
>>530
だが、527の方法でも答えを導きだせないだろうな。
ヤツは何も考えようとしてねえ。

533 :名無しさん@そうだ選挙にいこう:2008/10/26(日) 02:21:15
>>528
深夜にありがとうございます
前からできていなかったと思います
しかし、同じ時にインストールした2007wordではマクロがちゃんと使えます
Excelでは相対参照で記録しか選択できない状態です

534 :名無しさん@そうだ選挙にいこう:2008/10/26(日) 02:51:24
>>522
保存先をデスクトップとかCドライブの下にすぐ保存フォルダを作ってそこに保存では、うまくいきませんか?
前の方にファイルのアドレスが長いと保存出来ないってありましたよ。

535 :510:2008/10/26(日) 02:54:56
とりあえずすみませんでした。自分の分かる限界で考えてみました。
>>524の例えばB店の黒字の計算をするとする。

=SUMIF(シートAの店名列,"A店",シートAの合計列)
これでは合計で-20000とでる。そして

=COUNTIF(シートAの合計列,">=0")
で1とでる。

この2つの式って組み合わせれないですか?
もしかして全然考え方や方法が違いますか?

536 :名無しさん@そうだ選挙にいこう:2008/10/26(日) 03:00:37
>>535
さっきからちまちま訊いてきてるけど、最終的にやりたいことは何なのよ。

537 :510:2008/10/26(日) 03:07:48
>>536
売り上げとか経費とかの表作りです。
今まで関数とか使わず自分で入力していました。
必要箇所だけ入力したらあとは自動で数値が出るとすごく助かるんで・・。

538 :名無しさん@そうだ選挙にいこう:2008/10/26(日) 03:16:20
>>537
・・・・・・。

そうじゃなくて、最終的にどういうスタイルのシートが出来上がるのを希望してるのか訊いてるの。
>>524が最終形態なわけ?

539 :510:2008/10/26(日) 03:26:03
>>538
>>524は簡単に説明してあるだけです。
もっと細かく商品とか店とかあります。

ただ自分は関数の計算式が知りたいだけです。
自分の頭では限界だったのでお助けをと思いまして。

540 :名無しさん@そうだ選挙にいこう:2008/10/26(日) 03:33:26
>>539
だからその「関数の計算式」を、さっきからちまちま訊いてきてるから
最終的に何が知りたいのか確認してんだろうが。

もういい。これで最後だからな。
これ以上訊いてきても誰も答えないと思えよ。

【仮定1】シートAの表はセルA1からセルB10までに入力
【仮定2】シートBの表はセルA1からセルC5までに入力

シートBのセルB2に以下の通り入力。
=SUMPRODUCT((シートA!$A$1:$A$10=$A2)*(シートA!$B$1:$B$10>0))

シートBのセルC2に以下の通り入力。
=SUMPRODUCT((シートA!$A$1:$A$10=$A2)*(シートA!$B$1:$B$10<=0))

541 :510:2008/10/26(日) 03:42:25
>>540
まだ試していませんが、ありがとうございます。
やさしい方で良かった!

542 :名無しさん@そうだ選挙にいこう:2008/10/26(日) 07:54:35
【OSの種類      】 Windows XP
【Excelのバージョン】 Excel2003
【VBAが使えるか  】 若干
【VBAでの回答の可否】 可

リストを作りたいんですが
データ→入力規則→リスト
元の値「a,b,c,d」
これだと最初見えているのは空白で
そのセルを選択した段階で選択ボタンが出ますよね
これを最初から「a」が選択されている状態で
なおかつ「a,b,c,d」以外のものを直接打ち込めるようにしたいのですが
その方法を教えてください


543 :名無しさん@そうだ選挙にいこう:2008/10/26(日) 08:19:13
>>542
入力する全セルに最初からaを入力しておいたらダメなの?
a,b,c,d以外も入力するなら入力規則にしなくても・・・?
俺の理解不足なのかな?

544 :名無しさん@そうだ選挙にいこう:2008/10/26(日) 08:27:46
>>543
私の説明不足です
>a,b,c,d以外も入力するなら入力規則にしなくても・・・?
9割方その4項目しか使わないんですが
まれに例外が生じるのでそのような質問をしました

545 :名無しさん@そうだ選挙にいこう:2008/10/26(日) 09:34:51
>>544
入力規則 例外で検索したらあったけどこれじゃだめなの?

546 :492:2008/10/26(日) 10:03:32
自己解決しました (技術的には解決してないけど)

547 :名無しさん@そうだ選挙にいこう:2008/10/26(日) 10:14:06
>>544
入力規則→エラーメッセージタブ→スタイルを注意に変えると他の値を入れられる

548 :名無しさん@そうだ選挙にいこう:2008/10/26(日) 13:13:11
粘着質問に流されたのでもう一度張ります
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 マクロ セキュリティレベル 設定 HELPは全て参照し実行した

問題点 マクロの記録ができない

セキュリティレベルのマクロの設定は全てのマクロを有効にした
それでもマクロの記録ができなかったので信頼できる場所でフォルダを指定した
→できない
現在のExcelでは相対参照で記録しか選択できない状態です
エクセルでのマクロは2007にしてからはできていなかったと思います
しかし、同じ時にインストールした2007wordではマクロがちゃんと使えます


誰か解決策を教えてください。


549 :名無しさん@そうだ選挙にいこう:2008/10/26(日) 14:51:09
>>548
まずはOSをクリーンインストールしなおしてからOfficeをインストールしてみろ
それで直らなかったらまたどうぞ

因みに、この程度のことが面倒とか言い出すなら、そんなに深刻じゃないってことだから放置の方向で

550 :名無しさん@そうだ選挙にいこう:2008/10/26(日) 14:57:11
>>548
保存先をデスクトップとかCドライブの下にすぐ保存フォルダを作ってそこに保存では、うまくいきませんか?
前の方にファイルのアドレスが長いと保存出来ないってありましたよ。

551 :名無しさん@そうだ選挙にいこう:2008/10/26(日) 14:58:00
>>548
とりあえずマクロ有効ブックとして保存し直したらどう?

552 :名無しさん@そうだ選挙にいこう:2008/10/26(日) 16:04:21
わからないなら答えなきゃいいのにねえw

553 :名無しさん@そうだ選挙にいこう:2008/10/26(日) 19:02:25
>>551
確かにそれっぽいな。
いつも互換モードでつかっているから、2007形式でマクロが
使えなくなって驚いた記憶がある w

554 :名無しさん@そうだ選挙にいこう:2008/10/27(月) 19:04:58
割り込みでスマンが、久しぶりにここを覗いたら
>>547 の解答

初めて知った。実務的に良解答、座布団10枚あげたい。
ほんとに、思い込みで、知らないって怖いなと思った次第。
質問者にも5枚、あげたいぐらいwww


555 :名無しさん@そうだ選挙にいこう:2008/10/27(月) 19:38:40
EXCEL2003です。

セルに定義している数式を表示する機能があれば教えて下さい。

カーソルをセルに移動すると、そのセルで定義されている数式が
表示されますが、
この機能ではなく、各セル中に数式が表示されているイメージで、
表の中で定義されている数式が一覧できるようなものです。

よろしくお願いします。


556 :名無しさん@そうだ選挙にいこう:2008/10/27(月) 20:00:05
>>554
暇なときに、メニューの端から順に使ってみるといいよ
まだまだ発見あると思う


557 :名無しさん@そうだ選挙にいこう:2008/10/27(月) 20:06:27
>>555
ツール→オプション→表示 の 数式
みたいに表示したいの?

558 :555:2008/10/27(月) 20:30:18
>>557

レスありがとうございます。



559 :名無しさん@そうだ選挙にいこう:2008/10/27(月) 22:19:48
とある専用帳票(印字枠等が刷られたもの)に、
簡易に印字が出来るよう、Excel2003で作成したワークシートがあります。

印字位置の微妙な調整が出来るよう、
各項目はセルではなくオートシェイプの長方形の中でセル参照しています。
そのうち長い文字列の入る横長の長方形が、
改ページプレビューでは右側の範囲外まで伸びているんですが、
きっかり印刷されます。

最近会社のPCが入れ替えられ、すべてExcel2007になりました。
すると、印刷した際にこの横長長方形については、
改ページプレビューで切れるあたりで、
きっかり文字列が切れてしまうようになりました。

このへんの解消法をご存知の方ありましたらご教示ください。

560 :名無しさん@そうだ選挙にいこう:2008/10/27(月) 22:29:08
ありません
昔から続くバグです諦めて作り直しましょう

561 :名無しさん@そうだ選挙にいこう:2008/10/27(月) 23:01:56
>>555
Ctrl + Shift + @ でも表示切り替えできる
あまり使ってる人見ないけど

562 :名無しさん@そうだ選挙にいこう:2008/10/27(月) 23:04:32
数式の一覧なんて滅多に見ないもんな
どうせセルからはみ出して最初の方しか見えないし

563 :名無しさん@そうだ選挙にいこう:2008/10/28(火) 11:33:18
おまいら、2007でピボットテーブル簡単に使える?
俺が馬鹿なのか、なんか使えなくなってしまったよ。
2003に戻そうかな。

564 :名無しさん@そうだ選挙にいこう:2008/10/28(火) 11:59:52
ピボットテーブルどころか保存もままならない状態だったが、
慣れればそれなりに使えるな
ピボットはまだ使ったことはないな
2003に戻せるなら戻したほうがいいと思う

565 :名無しさん@そうだ選挙にいこう:2008/10/28(火) 13:02:08
デフォルトの表形式が変わっているからな。
でも将来は今のピボットが主流になるだろうから今から慣れておいた方がいいと思うよ。

どうしても気に入らないなら
ピボットオプションの表示タブで「従来のピボットレイアウトを使用」
にチェック入れてみな。

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

※物件数、担当者数は可変
※[01]等はR1C1方式の行・列座標
[01] [02] [03] [04] [05]
[01] 物件1 項目1 A
[02] 担当 田中 項目2 B
[03] 項目3 C
[04]
[05] 物件2 項目1 D
[06] 担当 佐藤 項目2 E
[07] 項目3 F
[08]
[09] 物件3 項目1 G
[10] 担当 佐藤 項目2 H
[11] 項目3 I
[12]
[13]
[14]
[15] 担当別
[16] 項目1 (A)の計算式α
[17] 田中 項目2 (B)の計算式β
[18] 項目3 (C)の計算式γ
[19]
[20] 項目1 (D+G)の計算式α
[21] 佐藤 項目2 (E+H)の計算式β
[22] 項目3 (F+I)の計算式γ
(※田中の『(A)の計算式α』と『(D+G)の計算式α』は同一の計算式にしたい)

上記のような担当別に合計するエクセル計算式を作りたいのですが教えてもらえないでしょうか?
SUMIFで出来るかと思ったのですが、どうにもできませんでした。

567 :566:2008/10/28(火) 16:24:58
ずれました修正


※物件数、担当者数は可変
※[01]等はR1C1方式の行・列座標
  [01] [02] [03] [04] [05]
[01]物件1       項目1 A
[02]   担当 田中 項目2 B
[03]           項目3 C
[04]
[05]物件2       項目1 D
[06]   担当 佐藤 項目2 E
[07]           項目3 F
[08]
[09]物件3       項目1 G
[10]   担当 佐藤 項目2 H
[11]           項目3 I
[12]
[13]
[14]
[15]担当別
[16]          項目1 (A)の計算式α
[17]田中       項目2 (B)の計算式β
[18]          項目3 (C)の計算式γ
[19]
[20]          項目1 (D+G)の計算式α
[21]佐藤       項目2 (E+H)の計算式β
[22]          項目3 (F+I)の計算式γ
(※田中の『(A)の計算式α』と『(D+G)の計算式α』は同一の計算式にしたい)


568 :名無しさん@そうだ選挙にいこう:2008/10/28(火) 17:02:07
>566,567
C列の担当者の上下に =$C$2 とか入れて、セル書式で文字を見えなくするということはできませんか?
そしたらSUMIFでいけそうな。

569 :名無しさん@そうだ選挙にいこう:2008/10/28(火) 17:04:00
>>566
一番上に1行追加&5列目より前に作業列追加(例は1列目に追加)

作業列の関数
=CONCATENATE(R[-1]C[3],RC[3],R[1]C[3])&RC[4]
※担当者別では少しずれる

担当者別の関数
=SUMIF(R[-15]C[-5]:R[-5]C,RC[-5],R[-15]C6:R[-5]C6)
※6列目(5列目+1)に書く


R1C1形式って関数長くなるなw

570 :名無しさん@そうだ選挙にいこう:2008/10/28(火) 18:28:36
>>566
ちょっと工夫すればSUMIFで可能。

=SUMIF(R2C3:R12C3,R[1]C1,R1C5:R11C5)

571 :569:2008/10/28(火) 18:48:50
担当者別の関数訂正
=SUMIF(R2C1:R12C6,RC[-5],R2C6:R12C6)

全部相対参照のままだった orz
R1C1形式で書くの初めてだったと言い訳しておく

572 :名無しさん@そうだ選挙にいこう:2008/10/28(火) 21:37:53
>>568>>569
ありがとうございます。
でも、今の表に行列を加えたり他のセルをいじったりするわけにはいかないのです。

>>570
ありがとうございます!
これがやりたかったことです。


項目2のβ式は
=SUMIF(R2C3:R12C3,RC1,R2C5:R11C5)

項目3のγ式は
=SUMIF(R2C3:R12C3,R[-1]C1,R3C5:R11C5)

とすればいいのですね。

573 :名無しさん@そうだ選挙にいこう:2008/10/28(火) 22:13:54
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 エクセル,コメント欄以外,説明,オートシェイプなど

セルに入力すべき事項が分かるように各セルごとにコメントを入れております。
自分では何を入力すればよいのか分かるのですが、誰でもできるようにマニュアルを
つくっているところです。
実はそのコメント欄の数がいっぱいになってしまい、うざくなってしまいました。
そこで、例えば「A1」のセルを選択したら、(〜を入力してください)との説明文が
出るようにしたいのです。オートシェイプの中に説明文が出てくるような感じです。
「B4」のセルを選択したら(4桁を入力してください)等にしたいのです。
何かのエクセルファイルで見たことがあったのですがやり方がわからないので
教えてください。よろしくお願いします。

574 :名無しさん@そうだ選挙にいこう:2008/10/28(火) 22:19:41
>>573
入力規則

575 :573:2008/10/28(火) 22:27:18
>>573
ありがとうございました!


576 :573:2008/10/28(火) 22:30:02
>>574
間違えました。574様でした…。
本当にありがとうございました。

577 :名無しさん@そうだ選挙にいこう:2008/10/29(水) 04:20:08
ここでいいのかわかりませんが、Excelで作ったグラフの系列値を
置き換えていくことって可能なんでしょうか?
具体的には、sheetCで描写したグラフhogeに対して使用されている系列値が
「sheetA!$C$2:$E$2」や「sheetB!$F$2:$M$2」だった場合、
「sheetA!$C$3:$E$3」「sheetB!$F$3:$M$3」といった形になるように
参照先のセルを1つ下をずらしたグラフを作っていきたいのです。
1つずらしては印刷して、また1つずらして印刷してとやれればなおいいんですが、
やはり、かなり難しいVBAを使わないと実現は難しいでしょうか?

【OSの種類】WindowsXP Professional SP2
【Excelのバージョン】Excel 2007
【VBAが使えるか】触り程度なら
【VBAでの回答の可否】可
【検索キーワード】系列値 置き換え グラフ 文字列 などでは検索しました

こんな感じですが、ご教示頂ければ幸いです。

578 :名無しさん@そうだ選挙にいこう:2008/10/29(水) 09:53:27
>>577
VBAなら簡単にできる。範囲の変更は

ActiveChart.SetSourceData Range("Sheet1!C2:E2")

って1行書くだけ。

579 :名無しさん@そうだ選挙にいこう:2008/10/29(水) 12:42:45
グラフの印刷は

ActiveWindow.SelectedSheets.PrintOut Copies:=1

って1行書くだけ。
あとは>>578とこれの2行を好きなだけ繰り返せばいい。

580 :名無しさん@そうだ選挙にいこう:2008/10/29(水) 13:20:59
>>577
Sub Macro2()
Dim i As Long
Dim e As Long
i = InputBox("最初の行?")
e = InputBox("最後の行?")
For m = i To e
ActiveChart.SeriesCollection(1).Values = "=Sheet1!R" & m & "C3:R" & m & "C5"
ActiveWindow.SelectedSheets.PrintOut Copies:=1
Next
End Sub

こんな感じ?
最初にグラフ選択だけしておいてね

581 :名無しさん@そうだ選挙にいこう:2008/10/29(水) 17:55:14
【1 OSの種類         .】 WindowsVista
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    . 】未経験
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 数式が参照しているセルを移動

例えば
   A   B
1  1   = A1
2

という状態からA1をカット&ペーストでA2に書き込むと、

   A   B
1     = A2
2  1

という状態になります。
B1に書く数式の記述を工夫することで上記の操作をした場合に

   A   B
1     = A1
2  1

になるようにすることは可能でしょうか。
また、可能でしたらそのようにするための数式の書き方を教えてください。


582 :名無しさん@そうだ選挙にいこう:2008/10/29(水) 18:06:12
>>581
=INDIRECT("A1")

583 :名無しさん@そうだ選挙にいこう:2008/10/29(水) 18:08:08
>>578-580
本当にありがとうございます。
グラフを操作した事がなかったので、非常に助かりました。
結果的には、1つのシートにたくさんのグラフが必要だったため、
>>580 を応用させて頂き、以下のような感じでマクロを組む事で無事対応できました。

Sub format_Macro()
Dim i As Long
Dim e As Long
i = InputBox("最初の行?")
e = InputBox("最後の行?")
For m = i To e
Worksheets("format").ChartObjects("grapha1").Activate
ActiveChart.SeriesCollection(1).Values = "=sheet1!R" & m & "C3:R" & m & "C5"
Worksheets("format").ChartObjects("grapha2").Activate
ActiveChart.SeriesCollection(1).Values = "=sheet1!R" & m & "C6:R" & m & "C13"
Worksheets("format").ChartObjects("grapha3").Activate
ActiveChart.SeriesCollection(1).Values = "=sheet1!R" & m & "C14"
Worksheets("format").ChartObjects("graphb1").Activate
ActiveChart.SeriesCollection(1).Values = "=sheet2!R" & m & "C3:R" & m & "C5"
Worksheets("format").ChartObjects("graphb2").Activate
ActiveChart.SeriesCollection(1).Values = "=sheet2!R" & m & "C6:R" & m & "C13"
Worksheets("format").ChartObjects("graphb3").Activate
ActiveChart.SeriesCollection(1).Values = "=sheet2!R" & m & "C14"
ActiveWindow.SelectedSheets.PrintOut Copies:=1
Next
End Sub

実際はもっと複数の多様なグラフを操作していますが、簡単にはこんな感じです。
非常に助かりました。重ね重ね有難うございました。

584 :581:2008/10/29(水) 19:33:14
>>582
ありがとうございます。
INDIRECT("A" & ROW())とすることで目的の動作をさせることができました。

585 :名無しさん@そうだ選挙にいこう:2008/10/29(水) 21:14:29
【1 OSの種類         .】 Windows vista
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 Googleやヘルプでの検索キーワード: ピボット 小計 比率

質問です。
ピボットテーブルで

商品A
 出荷数 データの個数
商品B
 出荷数 データの個数

というように 各商品に対して、出荷数が何回あったか
データの個数の比率で出したいのですが、
商品名毎の小計に対して比率で出せないでしょうか?
ピボットの元データは
商品-出荷数-出荷日 な感じになっています。

よろしくお願いします。
全体の比率や行に対しての比率ではダメですし、設定できるのでしょうか?

586 :名無しさん@そうだ選挙にいこう:2008/10/29(水) 21:42:43
>>585
データの個数をダブルクリック⇒オプション⇒行方向の比率で出せない?


587 :名無しさん@そうだ選挙にいこう:2008/10/29(水) 21:55:43
列から空白のセルと特定の文字列のあるセルを除いたセルを
カウントさせるにはどうしたらいいでしょうか?バージョンは2003です。

588 :名無しさん@そうだ選挙にいこう:2008/10/29(水) 22:02:39
>>587
全体の個数から空白と特定の文字列の個数を引く

589 :名無しさん@そうだ選挙にいこう:2008/10/29(水) 22:08:40
>>588
それ以外に方法は無いんですかね?
もうちょっとスマートにやりたいんですが、
COUNTAIFで条件に、〜は含まずってのはできないんでしょうか。

590 :名無しさん@そうだ選挙にいこう:2008/10/29(水) 22:30:02
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 超初心者です
【4 VBAでの回答の可否】 VBAでお願いします。

行の挿入、削除を教えてください。

@            A                 B    
    A    B         A    B    C        A    B    C
1  1001  1001     1  1001  1001  1001    1  1001  1001  1001
2  1003  1003     2  1003  1003  1002    2  1002
3  1004  1004     3  1004  1004  1003    3  1003  1003  1003
4  1005  1005  →  4  1005  1005  1004  → 4  1004  1004  1004
5  1006  1006     5  1006  1006  1006    5  1006  1006  1006
6  1007  1007     6  1007  1007  1007    6  1007  1007  1007
7  1008  1008     7  1008  1008  1008    7  1008  1008  1008


@ AB列の数字は同じものが入っています。
A C列に数値が入ります。
B C列に合わせて、A列、B列を挿入、削除したいです。
  C列には1002がありますが、A,B列には1002が無いため、A,B列に行の挿入が行われ、次にC列に1005が無いため、A,B列の1005は
  行の削除がされると言う具合です。


業務の効率化を図りたいので、申し訳ございませんがどなたか宜しくお願いいたします。
Excel VBA質問スレとマルチになってしまいました。すいません。

591 :名無しさん@そうだ選挙にいこう:2008/10/29(水) 23:17:58
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】少し
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 エクセル マクロ 相対参照

すみませんが、教えて下い

相対参照でマクロを作るときはマクロの記録を開始しすると
記録終了のツールバーが出てきて隣のボタンを押せばいいのですが、
その記録終了のツールバーが出てきません。
どうしたら出てくるのでしょうか?

592 :名無しさん@そうだ選挙にいこう:2008/10/29(水) 23:29:39
どうするとそんな現象になるのか再現できないが
ツールバーある辺りの空いてるところで右クリックして
記録終了を選べばえぇんジャマイカ

593 :591:2008/10/29(水) 23:32:15
>>592さん
そういうことではなく、相対参照でマクロを作りたいのですが
作れなくて困っているということです。
説明が下手ですみません。

594 :名無しさん@そうだ選挙にいこう:2008/10/29(水) 23:52:37
ん?ツールバーとか並んでるところで右クリック

ユーザー設定をクリック

記録終了をチェック

ではどう?

595 :名無しさん@そうだ選挙にいこう:2008/10/29(水) 23:54:16
>>591
まず、マクロの記録を開始する前に、相対参照と絶対参照はどうやって切り替えてるの?

596 :名無しさん@そうだ選挙にいこう:2008/10/30(木) 00:31:16
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】微妙
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 エクセル マクロ 図の貼り付け

あるセル(B1)に入力したファイル名を参照してシート内の結合したセル範囲(A4:G20)いっぱいに画像を貼り付ける
というマクロを作ったんですがどうもおかしいです

試しに標準モジュールに同様のマクロを入れて実行してみると想定どおりの動きをするんですが
Worksheet_Changeで実行すると必ず選択されたセル(この場合真下のB2)にサイズ調整もしないまま貼り付けてしまいます

しかもその後に再び標準モジュールの方を実行してみると最初の動作と違い
Worksheet_Changeのマクロと同じ動作をするようになります
しばらく放置すると直ったりファイルを開き直すまで直らなかったりします

エクセル2007ではどちらも正常動作するようなのですが2003以前のPCでも動作させたいのです
いったいどこを直せばいいのでしょうか?

ちなみにマクロのここがきちんと動作しません
Filename = Range("B1").Value
With ActiveSheet
.Pictures.Insert (ActiveWorkbook.Path & "\" & Filename & ".jpg")
With .Shapes(1)
.LockAspectRatio = msoTrue
.Parent.Visible = msoTrue
.Height = Range("A4").MergeArea.Height
.Top = Range("A4").Top
.Left = Range("A4").Left
End With
End With

597 :名無しさん@そうだ選挙にいこう:2008/10/30(木) 02:19:38
>>596
(1) 画像を貼り付ける位置(セル)が指定されていない。
(2) 貼り付けた画像と関係ない図形のプロパティを変えている。
(3) 高さだけ合わせて幅を合わせていない。

Filename = ActiveWorkbook.Path & "\" & Range("B1").Value & ".jpg"
Range("A4").Select ' (1)
With ActiveSheet.Pictures.Insert(FileName) ' (2)
 .ShapeRange.LockAspectRatio = msoFalse ' (3)
 .ShapeRange.Top = Range("A4").Top
 .ShapeRange.Left = Range("A4").Left
 .ShapeRange.Height = Range("A4").MergeArea.Height
 .ShapeRange.Width = Range("A4").MergeArea.Width ' (3)
End With

598 :名無しさん@そうだ選挙にいこう:2008/10/30(木) 02:32:44
無駄が多いな。その書き方ならRange.Selectしても意味ないし.ShapeRangeもWithの外に出せる。
むしろ後の作業のことを考えたらSelectしない方がいいんじゃないかとも思う。

FileName = ActiveWorkbook.Path & "\" & Range("B1").Value & ".jpg"
With ActiveSheet.Pictures.Insert(FileName).ShapeRange
 .LockAspectRatio = msoFalse
 .Top = Range("A4").Top
 .Left = Range("A4").Left
 .Height = Range("A4").MergeArea.Height
 .Width = Range("A4").MergeArea.Width
End With

599 :名無しさん@そうだ選挙にいこう:2008/10/30(木) 09:13:44
2007で列番号が数字になってしまったんだがアルファベットに戻すにはどうしたらいい?
APplication.ReferenceStyle=xlr1c1でできるのは知ってるが、手での操作が分からん。

600 :名無しさん@そうだ選挙にいこう:2008/10/30(木) 09:15:10
xlR1C1じゃなくてxlA1だった。

601 :名無しさん@そうだ選挙にいこう:2008/10/30(木) 10:27:08
>>599
officeボタン→excelのオプション→数式→「R1C1 参照形式を使用する」のチェックを外す

と、ググったら書いてあった。2007使ったことないんで、わかりづらかったらごめん

602 :名無しさん@そうだ選挙にいこう:2008/10/30(木) 11:51:03
>>586
行方向への比率では出せないのです。全体の比率と同様になってしまいます。
ピボットでは無理でしょうか?

603 :599:2008/10/30(木) 12:17:23
>>601
サンクス
officeボタンにあったのか。
リボンをいくら探しても見つからないわけだ。

604 :名無しさん@そうだ選挙にいこう:2008/10/30(木) 14:42:51
【1 OSの種類         .】 WindowsXP SP3
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 少しだけ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 office2000 見つかりません 普通に開ける file:// プロトコル

ネットワーク上にNASがあり、その中にHTMLでメニューを作っています。
そのHTMLからハイパーリンクでファイルを指定しています。
アドレスバー上は"file://****/****/**.xls"となっていて、クリックすると
『"file://****/****/**.xls"が見つかりません、*****を確認してください』
みたいなエラーメッセージがでます、でも『OK』をクリックすると普通に開きます。
設定でどうにかできるのでしょうか。よろしくお願いします。

ちなみにoffice2003では問題なしです。




605 :名無しさん@そうだ選挙にいこう:2008/10/30(木) 15:25:11
>>604
まずは HTML なのか Excelファイルなのかはっきり汁

606 :名無しさん@そうだ選挙にいこう:2008/10/30(木) 15:41:49

学校ででた課題の、エクセルのマクロの作り方?がいまいちわかりません。

【課題】W大学の「認知科学入門」受講者30名の出席回数と期末テストのデータが「練習(第6回).xlsx」にある。
この授業の評価点は,期末テスト6割,出席4割として算出する。「加藤一さん」の評価点を算出し,
「評価点」の列(たまご色の列)に表示するマクロ(名前は「評価点算出」とする)を書き,ボタンに登録しなさい。
なお,評価点の変数名は「hyoka」,データ型は「単精度浮動小数点数型」とすること
(他の変数については,自由に名前を付けてよい。また,データ型は「バイト型」とする)。


加藤一はセルのB2、出席は15回、期末テストは90点


いったいどんなマクロを作ればいいのか全く見当つかず。
評価の出しかたなど、誰か教えてください。

607 :名無しさん@そうだ選挙にいこう:2008/10/30(木) 15:43:31
出席は15回中15回です
テストは100点満点中90点です

おねがいします。

608 :名無しさん@そうだ選挙にいこう:2008/10/30(木) 15:46:04
また凄いバカが現れたなw
同級生に聞きなさい?ボク?

609 :名無しさん@そうだ選挙にいこう:2008/10/30(木) 15:47:13
>>605
すいません
ブラウザでメニューを見て、書類名をクリックすると
エクセルが立ち上がってそのファイルが表示される状態です。

610 :名無しさん@そうだ選挙にいこう:2008/10/30(木) 15:48:05
てか、教科書読み直しなさい。
それでもわからないなら先生に聞きなさい。
それでもわからなければわかるまで留年してください。

611 :名無しさん@そうだ選挙にいこう:2008/10/30(木) 15:49:56
>>609
つーか、スレ違いなんだよー
htmlの問題だから、2ちゃん検索とかで適当なところに質問汁。


612 :名無しさん@そうだ選挙にいこう:2008/10/30(木) 15:58:07
うるせーしね


ちんちんちんちんちんそちんかな?まんぺまんぺ

613 :名無しさん@そうだ選挙にいこう:2008/10/30(木) 16:00:05
>>611
そうなんですか?
excel2003が問題ないので、excel2000の問題だとばかり思ってました


ありがとうございました

614 :名無しさん@そうだ選挙にいこう:2008/10/30(木) 16:47:47
Excel2000で
メルアド、URLがハイパーリンクにならないようにするには
どのようにすればよいのでしょうか?
よろしくお願いします。

615 :名無しさん@そうだ選挙にいこう:2008/10/30(木) 16:57:07
>>614
'aaa@xxx.ne.jp
みたいに先頭に「'」を付ける

616 :名無しさん@そうだ選挙にいこう:2008/10/30(木) 17:00:22
実務やってると>>606みたいなのが本当に必要のない学習と改めて思い知らされるね
>>606
問題のファイルアップしてくれたら作るよ
無いと面倒くさいので無理

617 :名無しさん@そうだ選挙にいこう:2008/10/30(木) 17:20:33
>615
ありがとうございました。

実は手元に作成者不明のファイルがありまして
そこではママでメルアドを入力して確定してもハイパーリンク化しません。
プロパティは文字列で、データプルダウンの入力規則は
グレー化したままです。
自分で同じ設定を再現しようとしているのですが
なかなかうまくいかないのです。

618 :名無しさん@そうだ選挙にいこう:2008/10/30(木) 17:23:12
>>616
wwwwwwwwwwwwwwwww

619 :名無しさん@そうだ選挙にいこう:2008/10/30(木) 17:31:31
>>617
alt+f11でマクロがなければ、よく分からない
ファイルをアップロードしてもらえると有難い


620 :名無しさん@そうだ選挙にいこう:2008/10/30(木) 17:31:41
>>606
ものすごく無意味な問題だ・・・
関数で事足りるのに何故VBAなのか先生を問い詰めたいなw

>>614,>>617
入力直後にCtrl+Z
↑の動作をするようなマクロが入ってるとか?

621 :名無しさん@そうだ選挙にいこう:2008/10/30(木) 17:46:22
頭に血がのぼったからって分からない質問に答えなくていいんだよバカはwww
ハイパーリンクの設定なんて、オートコレクトのオプション次第だろwwww
はらいてえwwww

622 :名無しさん@そうだ選挙にいこう:2008/10/30(木) 17:50:30
>>621
  /\___/\
/ ⌒   ⌒ ::: \
| (●), 、(●)、 |    / ̄ ̄ ̄ ̄ ̄
|  ,,ノ(、_, )ヽ、,,   |  < やるじゃん
|   ト‐=‐ァ'   .::::|    \_____
\  `ニニ´  .:::/
/`ー‐--‐‐―´´\

623 :名無しさん@そうだ選挙にいこう:2008/10/30(木) 17:54:12
>>621
614のファイルがオートコレクトのオプションで制御してるとは限らないw
614がググったりメニューから弄れるものを手当たり次第に調べた結果分からなかったとしたらマクロじゃね?

624 :名無しさん@そうだ選挙にいこう:2008/10/30(木) 17:57:10
>>623
  /\___/\
/ ⌒ ⌒ ⌒ ::: \
| (●)(●)(●)、 |    / ̄ ̄ ̄ ̄ ̄
|  ,,ノ(、_, )ヽ、,,   |  < 言い訳見苦しいwwwww
|   ト‐=‐ァ'   .::::|    \_____
\  `ニニ´  .:::/
/`ー‐--‐‐―´´\

625 :名無しさん@そうだ選挙にいこう:2008/10/30(木) 18:02:05
>>616
そういう甘やかしがゆとり世代の弊害を助長するんだよ。
使えない後輩がきて何も考えずに教えてくださいと言われたらどうすんだよ。
多少は自分で考えろボケ!って思うだろ。

まあ、クソ教育委員会が悪いんだなw

626 :名無しさん@そうだ選挙にいこう:2008/10/30(木) 18:02:13
>621
2000はオートコレクトにオプションないんだけどな

627 :名無しさん@そうだ選挙にいこう:2008/10/30(木) 18:06:05
>>606は絶対にupすんなよ
>>616みたいな性根腐ってる奴は、消し忘れのドキュメントプロパティ見て、学校を特定してほくそ笑むのが主目的だからwww
久しぶりにバカにバカかぶせて来て最高だわwwww

628 :名無しさん@そうだ選挙にいこう:2008/10/30(木) 18:10:23
>>627
正解!!
よく分かるね。同業者かい?

629 :名無しさん@そうだ選挙にいこう:2008/10/30(木) 18:18:52
ここ読んでも「言い訳見苦しいwwwww」って言えるのか?
ttp://support.microsoft.com/kb/233073/ja

630 :614:2008/10/30(木) 18:25:24
自己解決になってるのかどうかわかりませんが
ブックを共有状態にすると
ハイパーリンクが無効になるので
それを利用してるような気がしてきました

631 :591:2008/10/30(木) 21:22:34
>>594
ありがとう。助かりました。
亀レススマソ


632 :名無しさん@そうだ選挙にいこう:2008/10/30(木) 21:52:57
>>602
よく意味がわからんが、
ttp://uproda11.2ch-library.com/src/11130752.jpg
こんな感じ?

633 :名無しさん@そうだ選挙にいこう:2008/10/31(金) 03:57:19
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 エクセル 時間計算

バイトの報酬を計算する式を作りたいのですが
深夜手当の時間を計算するために22:00以前と以降の勤務時間を
別々に算出させる方法を教えてください

634 :名無しさん@そうだ選挙にいこう:2008/10/31(金) 06:14:37
>>633
質問がざっくりしすぎなので回答も大雑把にしかできないよ
IFを使う

635 :名無しさん@そうだ選挙にいこう:2008/10/31(金) 08:54:06
>>633
開始-終了=勤務時間
終了-22時=深夜勤務時間
(22時はTIME(22,0,0))
勤務時間-深夜勤務時間=深夜以外の勤務時間

休憩時間の考慮はして無い
開始がずれても22時以降は深夜?
違っててもその場合の対応ぐらいは考えれるよなw

636 :名無しさん@そうだ選挙にいこう:2008/10/31(金) 08:54:54
>>632
こんな感じです。
ttp://uproda11.2ch-library.com/src/11130915.jpg

ある商品の出荷数が何%だったか、を出したいのです。
つまり出荷数の頻度を出したいのですが、商品がかなりたくさんあるので
手計算では大変でして…。

637 :名無しさん@そうだ選挙にいこう:2008/10/31(金) 09:44:11
>>636
ttp://uproda11.2ch-library.com/src/11130918.jpg.shtml
G3=IF(D3<>"",D3,G2)
H3=IF(ISERROR(FIND("集計",G3)),F3/LOOKUP(G3&" 集計",G:G,F:F),"合計行")
関数でやってみたが、2007とは表示が違うんだなー
集計って表示を元に作ってるが、それがなければしんどいかも

638 :名無しさん@そうだ選挙にいこう:2008/10/31(金) 10:32:41
>>637
ttp://uproda11.2ch-library.com/src/11130923.jpg

うまく行きました、ありがとうございます!

639 :名無しさん@そうだ選挙にいこう:2008/10/31(金) 12:18:45
エクセル2000
VBA勉強中

ファイルを開いた時にセルA1に今日の日付を入力したいのですが、方法があったら教えて下さいお願いします、できればVBAでやりたいです。

640 :名無しさん@そうだ選挙にいこう:2008/10/31(金) 12:23:58
>>639
ctrl+;

641 :名無しさん@そうだ選挙にいこう:2008/10/31(金) 12:36:22
>>640
ひでぇw
>>639
Sub Auto_Open()
Sheets("sheet1").Range("a1").Value = Format(Date, "m/d")
End Sub

Format(Date, "m/d")はdateだけでもいけるけど

642 :名無しさん@そうだ選挙にいこう:2008/10/31(金) 13:29:10
まあ、ぶっちゃけVBAなんか使わなくても
A1セルに=TODAY()
だけでもいいけどなw

643 :名無しさん@そうだ選挙にいこう:2008/10/31(金) 15:36:31
長い文字列から「特定の文字列以外」の任意の文字が何文字目に出てくるか
をエクセルの関数だけで(SEARCHとかで)見つけることってできますか?
ちなみにエクセル2002です

00000E0F8 から 0ではない文字列が出てくるのは 6文字目 8文字目 とか
123123124 から 123ではない文字列が出てくるのは 7文字目 とか

644 :名無しさん@そうだ選挙にいこう:2008/10/31(金) 16:22:35
【1 OSの種類         .】 Windows Vista SP1
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 office ribbonx group label 非表示

現在、VS2008を使ってエクセルのアドインを作成中です
エクセルにタブを追加してボタンを入れ込んでいるのですが、
デザイン上、グループの下に表示されるラベルが邪魔です
ラベルのテキストを消してもラベルの跡が残ってしまいます
これを消す方法はありませんか?

645 :名無しさん@そうだ選挙にいこう:2008/10/31(金) 17:08:07
>>643
それは必ず半角文字列で全角は出ない?


646 :645:2008/10/31(金) 17:19:31
>>643
全角でも半角でもよかった。考えすぎた
上の例でいくと
A1=00000E0F8
A2=0
A3=IF(LEFT(A1)=LEFT(B1),LEN(A1)-LEN(SUBSTITUTE(A1,B1,""))+1,1)

647 :名無しさん@そうだ選挙にいこう:2008/10/31(金) 17:39:19
>>643
A1=00000E0F8
A2=0

B1=MIN(IF(SUBSTITUTE(MID($A1,1,ROW(INDIRECT("IV1:IV"&LEN($A1)-1))*LEN($A2)),$A2,"")<>"",ROW(INDIRECT("IV1:IV"&LEN($A1)-1))*LEN($A2)-LEN($A2)+1))
(配列数式)
C1=IF(B1<>0,MIN(IF((SUBSTITUTE(MID($A1,B1+1,ROW(INDIRECT("IV1:IV"&LEN($A1)-1))*LEN($A2)),$A2,"")<>""),ROW(INDIRECT("IV1:IV"&LEN($A1)-1))*LEN($A2)-LEN($A2)+1+B1)),0)
(配列数式)
C1を横にコピーすれば2回目より後の分も出せる
配列数式の使い方くらいはヘルプにあると思う
2003で組んだのでもしかしたら使えないかもしれないw

648 :647:2008/10/31(金) 17:45:34
A2は絶対参照のほうがコピーする上で都合がいいかもしれない

649 :名無しさん@そうだ選挙にいこう:2008/10/31(金) 17:50:59
頭悪い奴がべんきょうするとこうなっちゃうんだなw

650 :647:2008/10/31(金) 17:57:35
>>649
あたまわるそうなレスですね
ひとのかいとうけなすまえにもっといいかいとうだせないのか?

651 :名無しさん@そうだ選挙にいこう:2008/10/31(金) 18:01:22
気にスンナ。どうせ649には解けないんだから。

652 :名無しさん@そうだ選挙にいこう:2008/10/31(金) 18:16:09
すみません、

今、セルの中に計算式が入ってるところがあって、
ほかのところを参照した結果がそこに入るようになってるんですが、


それを単なる文字に変換するにはどうしたらいいのでしょう。

「セルの書式設定」で、文字列 にしてしまうと、わけのわかならい文字列になってしまいます。

653 :647:2008/10/31(金) 18:16:24
>>651
最初から決め付るのは良くない
649には649なりに何かいい考えが・・・




無いよなw

654 :名無しさん@そうだ選挙にいこう:2008/10/31(金) 18:19:27
>>652
そのまま置き換えていいならコピーして「形式を選択して貼り付け」する
右クリックかメニューの「編集」の中に有る
そこで「値」を選択してOK

655 :名無しさん@そうだ選挙にいこう:2008/10/31(金) 18:28:27
結局>>646>>647かその他か
どうすればいいの?

656 :名無しさん@そうだ選挙にいこう:2008/10/31(金) 18:35:39
>>642
それでは条件を満たしてない、条件は「ファイルを開いた時」だ
=TODAY()では他のセルの再計算に釣られて
「ファイルを開いた時」以外にも日付が変わってしまう

まぁ、実際に日付を跨いでブックを開き続けるかは解らないが
その可能性が否定されてない以上、上記は最低限考慮しなければならないことだ

657 :名無しさん@そうだ選挙にいこう:2008/10/31(金) 18:45:24
>>655
目的の文字決めて、普通に置き替えてからsearchすればok

検索対象文字:A1: 00000E0F8
検索除外文字:A2: 0
検索する文字:A3: =LEFT(SUBSTITUTE(A1,A2,""))
検索する文字の位置:A4: =SEARCH(A3,SUBSTITUTE(A1,A2,REPT("@",LEN(A2))))

べんきょうができる人ははいれつすうしきが好きなようだけどねえ

658 :646:2008/10/31(金) 18:56:28
A1=00000E0F8
B1=0
C1=IF(LEFT(A1)=LEFT(B1),LEN(A1)-LEN(SUBSTITUTE(A1,B1,""))+1,1)
だった。死にたい
>>657
A1に@が入るとうまくいかないぞ
入らないならいいんだけど


659 :>>639:2008/10/31(金) 18:57:04
>>640涙目になりました…
>>641助かりました、これから試してみます色々応用効きそうで助かります
>>642
VBAは勉強中だけどエクセル解らないので勉強になりました。

660 :名無しさん@そうだ選挙にいこう:2008/10/31(金) 20:34:27
エクセルで有る工業原料の在庫管理表作ろうと思いますが、複数の棒グラフを一枚の
紙に打ち出す、表示するやり方ってありますか?


 1 作業開始前材料在庫量
 2 作業消費材料量
 3 作業終了直後材料在庫量
 4 材料受け入れ(購入)量
 5 次回作業への繰り越し材料量

この5つのグラフを一覧表示して打ち出して壁にはっておきたいのです。

記入要領は、朝8時の始業前に材料個数を点検記録して、終業直後にもう一度
在庫を点検して当日の消費量を算出します。


661 :名無しさん@そうだ選挙にいこう:2008/10/31(金) 20:37:40
2 作業消費材料量=3 作業開始前材料在庫量ー1 作業終了直後材料在庫量で
算出します。

さらに在庫が切れる前に材料を購入して作業直後在庫量に加算して次回作業への繰り越し量を
算出します。

これらを横軸に日にちを入れて、11月なら1日から30日まで、縦軸に個数をいれて
縦軸の「11月×日」をそろえて5つのグラフを並べて表示したいのです

662 :596:2008/10/31(金) 20:39:53
>>597-598
遅レスになりましたがありがとうございます
頂いたヒントを参考にして色々試してみまして一応こんな感じになりました
ActiveSheet.DrawingObjects.Delete
Filename = ActiveWorkbook.Path & "\" & Range("B1").Value & ".jpg"

With ActiveSheet.Pictures.Insert(Filename).ShapeRange
  .LockAspectRatio = msoTrue
  .Height = Range("A4").MergeArea.Height

  If .Width > Range("A4").MergeArea.Width Then
   .Width = Range("A4").MergeArea.Width
  End If

  HeightAdjustment = (Range("A4").MergeArea.Height - .Height) / 2
  WidthAdjustment = (Range("A4").MergeArea.Width - .Width) / 2

  .Top = Range("A4").Top + HeightAdjustment
  .Left = Range("A4").Left + WidthAdjustment
End With
アスペクト比を変えずに枠内いっぱい、枠の真ん中に貼り付けられました
もっと簡略化できるといいのですがとりあえずありがとうございました
長々と書いてすみません

663 :名無しさん@そうだ選挙にいこう:2008/10/31(金) 20:58:58
【1 OSの種類         .】 Windows 忘れました
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 ローテーション・マクロ・勤務表・ナンプレ

グループ別のローテーション表をつくりたいです。
A〜F班まであって仕事が1〜14週あります。
作業内容も数種類あるのですが下のように縦でも横でも重複させないようにする方法はないでしょうか。

グ 1 2 3 4週
A あ い う え
B い う え あ
C う え あ い



664 :名無しさん@そうだ選挙にいこう:2008/10/31(金) 21:46:42
>663
A〜F班ということは6通り
質問文中には あいうえ の4通り
どうやって縦方向の重複を回避したらいいんでしょうか?

中のひらがな部分の設定問題だと思うけど、もっと要件を出してもらわないと
誰も回答のしようがないのでは?

665 :名無しさん@そうだ選挙にいこう:2008/10/31(金) 21:54:24
>660
レスのbP〜6に従って質問しないと無視されますよ。


666 :名無しさん@そうだ選挙にいこう:2008/10/31(金) 22:01:01
>>664
>作業内容も数種類あるのですが下のように

あくまでも例です。

グループ数と週数は決まってるのですが、まだ作業内容をいくつに分けるか決めてない(2〜3動く可能性も)
のでこの書き方にしました。


667 :名無しさん@そうだ選挙にいこう:2008/10/31(金) 22:03:16
>>666
それは無理
ただ確実なのは>>663の例通り一つずつずらすやり方

668 :名無しさん@そうだ選挙にいこう:2008/10/31(金) 22:05:14
>663
質問の追加です。

「横方向の重複がない」とは、質問文中のグループAだけ注目してみると
あ、い、う、え ということであれば、14週の間に重複なしのためには
あ、い、う、え、お、か、き、く、け、こ、さ、し、す、せ の14個の
ひらがなを用意するということですか?

666にある通り、まだ決まっていないのであれば、作業内容は14通り必要。
あとは1文字ずらしだからVBAの出番はない。

669 :名無しさん@そうだ選挙にいこう:2008/10/31(金) 22:49:04
>>667
>>668
あ〜そうですね 条件がないと一文字ずらしでいけますね
すみません馬鹿なことを聞きました。

670 :名無しさん@そうだ選挙にいこう:2008/10/31(金) 22:54:21
条件を確認してからもう1度来ます。

671 :名無しさん@そうだ選挙にいこう:2008/10/31(金) 23:29:52
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】

こんばんは。よろしくです。

同じ作業を繰り返し操作するのでマクロを記録してみたのですが
一部うまくいきませんでした。

ひとつのブックに複数のシートが7枚ありまして、操作の手順の一つに
必ず左から2番目のシートをcsv形式で1枚目の「A1」の文字列の
ファイル名で保存する、というのがあります。

ところが、上記のような保存作業をすると、当該シート名が保存のたびに
変わってしまい、記録したマクロがうまく実行できませんでした。

今回の例でいくと
Moduleコード?が出てきて
Sheets("計画書1").Select
が黄色で塗りつぶしで表示されているので、シート名、「計画書1」を探してエラーになっているものと
推測しています。
(前回の保存でシート名が計画書1から別の名前に変わってしまっているので
計画書1シートを探しに行って見つからず、エラーを吐いているんですよね?)

シート名がころころ変わっても、必ず左から2番目のシートに対して
上記のような保存が実行されるよう、修正したいのですが
どうすればよろしのでしょうか?

よろしくです。

672 :名無しさん@そうだ選挙にいこう:2008/11/01(土) 00:44:45
エクセルで2つ質問があります。

1.セルに20081022と年月日が表示されています。これをVBAで「2008/10/22」
とするのはどうすればよいでしょうか?
2.エクセルでセルの6文字目までをコピーして別のbookに移動させたい
のですが、left関数で取得したのをコピーすると数式がコピーされ、
表示された内容がコピーされません。どうすればよいでしょうか?

673 :名無しさん@そうだ選挙にいこう:2008/11/01(土) 01:03:19
>>671
sheets(2).select

674 :名無しさん@そうだ選挙にいこう:2008/11/01(土) 02:35:00
>>672
1
Sub a()
 Selection.NumberFormatLocal = "0""/""00""/""00"
End Sub

2
形式を選択して貼り付け→値

675 :名無しさん@そうだ選挙にいこう:2008/11/01(土) 08:32:50
Excel2000使用者です。
集計表があります。A列に連番(時々空白セルあり)を振ってあります。
別シートに、連番1の隣のセルの数値をそのまま表示させたいのですが、
VLOOKUP(1,A5:A10,2,0)
でREFエラーになります。
連番は、特定の列が0だったら飛ばすようにしているので、連番1が何行目かを固定することはできません。
もともとは、特定の列が0の行を詰めて、別シートに上から順に表示したかったのですが、とりあえず連番を振ったらやりやすいかなと思って振っています。
どうすればいいのでしょう。よろしくお願いいたします。


676 :名無しさん@そうだ選挙にいこう:2008/11/01(土) 08:49:16
>676
ヘルプでVLOOKUPの説明をよく読んでみ
ここで説明を待つより、早いし、わかりやすいぞ

677 :名無しさん@そうだ選挙にいこう:2008/11/01(土) 09:31:41
>VLOOKUP(1,A5:A10,2,0)
範囲のまちがいだろ

678 :671:2008/11/01(土) 09:55:02
>>673
ありがとう!!!


これでうまくいくと思っていたのですが、、、もう一つダメな箇所がありました、、、。

5枚目のシート(シート名は 名簿 )のセル「B3」に入っている文字列の先頭から3文字を
ファイル名として保存したかったのですが、(B3が、山田太郎 なら、山田太.csvというファイル名で
保存したい)エクセルの記録ではコピペした文字列そのものを記録しちゃってるみたいで
毎回記録したときのファイル名で保存しようとしてしまいます。

どう修正したらよろしいのでしょうか? よろしくです。


この部分がダメなんすよね?

ActiveWorkbook.SaveAs Filename:="C:\Documents and Settings\naisakubu\デスクトップ\山田太.csv", _
FileFormat:=xlCSV, CreateBackup:=False

679 :名無しさん@そうだ選挙にいこう:2008/11/01(土) 09:56:30
>>674
ありがとうございます!素晴らしいです。

680 :名無しさん@そうだ選挙にいこう:2008/11/01(土) 10:33:42
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 EXCEL 比較 diff

他人(Aさん)が作ったEXCELファイルがあります。
「○○○ver.1.1.xls」
「○○○ver.1.2.xls」
とファイル名の末尾には,Aさんが独自でつけたバージョンナンバーが付加されています。
しかし,ver.1.1とver.1.2の違いがわからず困っています。
ファイルサイズは微妙に違います。
保存日時は,30分だけずれています。

「EXCELdiff」というシェアウエアで比較してみたところ,シート部分には「差異なし」との結果でした。
ということは,マクロ部分ということになるのですが,マクロの記述も膨大で,とても見るだけでは追いつきません。
「EXCELdiff」はマクロ部分までは比較してくれないようです。
マクロ部分をテキストで出力し,テキストを比較できるソフトで比較するという方法は思いついたのですが,
これも膨大ですし,フォームの部分や,パラメータまでは比較できないなと思い,頓挫しています。

何か,良い方法はありませんか?

681 :名無しさん@そうだ選挙にいこう:2008/11/01(土) 10:34:13
Aさんは故人です。

682 :名無しさん@そうだ選挙にいこう:2008/11/01(土) 10:41:24
いくら膨大っていってもコピーもできないほど膨大なマクロを組んでる事はないだろ?



683 :名無しさん@そうだ選挙にいこう:2008/11/01(土) 10:54:08
>680
何がしたいんだ?ただの好奇心か
小汚いクソ野郎の臭いがする

684 :名無しさん@そうだ選挙にいこう:2008/11/01(土) 10:59:45
>>680
モジュールをエクスポートしてから比較すればいい。
エクスポートすると拡張子がbasのファイルができるが、これは単なるテキストファイルなので簡単に比較できる。

685 :名無しさん@そうだ選挙にいこう:2008/11/01(土) 11:33:42
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可

A列に時刻、B列に値が入っていて、これを X軸に時刻、Y軸に値の折れ線グラフ(もしくは点のプロット)にしたいです。
ところが時刻は等間隔ではなく、歯抜けになっています(あるログなのです)。
時刻のダブりはありません。
まずはA、B列を選択して折れ線グラフを作ろうとしましたが、時刻が等間隔ではないため、期待するグラフを作ることができません。
どうしたらうまくいくでしょう?

686 :名無しさん@そうだ選挙にいこう:2008/11/01(土) 11:44:44
>>680
イタコ訊けば?

687 :名無しさん@そうだ選挙にいこう:2008/11/01(土) 11:51:18
>>684
モジュールのエクスポートでなんとかやってみます。
ありがとうございました。

688 :名無しさん@そうだ選挙にいこう:2008/11/01(土) 12:41:40
>>678
ActiveWorkbook.SaveAs _
FileName:="C:\Documents and Settings\naisakubu\デスクトップ\" & _
Left(Sheets(5).Range("B3").Value, 3) & ".csv", _
FileFormat:=xlCSV, CreateBackup:=False


689 :633:2008/11/01(土) 13:47:05
レスありがとうございます

>>634
IFを使うんですか
とりあえずやってみます

>>635
詳しく書いてくださってありがとうございます
22時以降であれば深夜手当なんで書かれた通りにやらせてもらいます

690 :名無しさん@そうだ選挙にいこう:2008/11/01(土) 17:16:31

【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 無理です・・・
【5 検索キーワード     】 エクセル 日付 欠ける 欠 挿入 等

検索ワードが悪いのか、なかなかひっかけれませんでしたので質問させて
ください。

とある会社の労務担当です。
下記をシートとしてみていただいて、含まれていない日付、文字を自動的に挿入
する適当な関数はありますでしょうか。


行列    A   B 
1 1月1日 出勤
2 1月2日 出勤
3 1月4日 出勤
4 1月5日 遅刻
5 1月6日 出勤
6 1月7日 出勤
7 1月9日 出勤

例えばA2、A3の間に1月3日が抜けていますので、行2、行3の間に1行
挿入し、列Aには1月3日、列Bには休日と入力します。

この作業を丸4日延々していて、先が見えず気がくるってきましたので何と
か助けていただきたくてこのスレにきました。
すみません。

691 :名無しさん@そうだ選挙にいこう:2008/11/01(土) 17:41:07
>>690
c2=IF(B2="","休日",IF(DAY(A2)=DAY(A1+1),"","ここに挿入"))
入力後、下までオートフィル
ctrl押しながら列を選択して行き、列を挿入
そしてA列とC列にオートフィルを掛ける
「ここに挿入」がなくなるまで繰り返した後、最後にC列をコピーして値で貼り付け

行を挿入する時、楽な方法がもう一つある
まずどこでもいいので挿入
その後シフト+スペースで行を選択した後、F4を押せば挿入できる
後は慣れれば早くなるだろう

・・・まぁVBA使えば一瞬で終わるけど、関数でやるならこんなところか


692 :名無しさん@そうだ選挙にいこう:2008/11/01(土) 17:49:13
>>690
最初から日にちが入っているシートを作って、
そちらにvlookup等でデータを引っ張ってきたらどう?

693 :691:2008/11/01(土) 17:59:01
>>692
天才!!

694 :名無しさん@そうだ選挙にいこう:2008/11/01(土) 17:59:57
>>690
結果のデータさえ得られればいいんなら、こんな手がある。

(1) 元のワークシートを「表1」と仮定。「表2」のシートを挿入。
(2) 表2のA1に「1月1日」と入力。
(3) 表2のB1に、
  「=IF(ISNA(VLOOKUP($A1,表1!$A$1:$B$7,1,FALSE)),"休日",VLOOKUP($A1,表1!$A$1:$B$7,2,FALSE))」
  を入力。
  ※「表1!$A$1:$B$7」の部分2箇所、実際の名前とアドレスに変える。絶対参照($付き)にするのを忘れずに。
(4) 表2のA1:B1を選択してコピー、必要な行数分貼り付け。

695 :名無しさん@そうだ選挙にいこう:2008/11/01(土) 18:00:23
あ、かぶった

696 :690:2008/11/01(土) 18:10:00
>>691
ありがとうございます。ミスが減りそうで嬉しいです。
やはり関数だけですと最終的に力技になってしまいますね。VBA関連
の本を買って勉強します。

>>692
Sheet間のデータ移動もしたことがありませんが、非常に興味があります。
vlookupについて調べてみます。ありがとうございます!
    

697 :694:2008/11/01(土) 18:13:01
すまん間違ってた。訂正

(2) 表2のA1に「1月1日」と入力。表2のA2に「=$A1+1」と入力。
(4) 表2のB1をB2にコピー。そのあとA2:B2をコピーして、必要な行数分貼り付け。

698 :名無しさん@そうだ選挙にいこう:2008/11/01(土) 18:22:27
>>658
そのように
A1:00000000000000001200000012
B1:00
C1:=IF(LEFT(A1)=LEFT(B1),LEN(A1)-LEN(SUBSTITUTE(A1,B1,""))+1,1)
とすると
23というトンチンカンな数字になるんですが・・・17になってくれません
あとこの場合に2回目の25を出したい場合はD1にはC1のどこを変化させれば良いのでしょうか

699 :名無しさん@そうだ選挙にいこう:2008/11/01(土) 18:49:05
>>698
絶対に出ない文字はある?
それが分かれば>>657の@をその文字に変えればいける


700 :690:2008/11/01(土) 18:51:21
>>694
ありがとうございます。日付挿入の件が難なくクリアできました。
すでに作成している年間勤務表があるので組み込んでみます。

すみませんがもうひとつ。
B列間の値移動はできたのですが、同じ条件でのC列間の移動も下記の式で
よろしいでしょうか?(実はC列にも退出時刻の数式があります)


A    B   C
1月2日 出勤 19:00

下記の式ですとB列と同じ値が入ってしまいます。

=IF(ISNA(VLOOKUP($A3,表1!$A$1:$C$7,1,FALSE)),"休日",VLOOKUP
($A3,表1!$A$1:$C$7,2,FALSE))

お手数ですがよろしくお願いします。


701 :名無しさん@そうだ選挙にいこう:2008/11/01(土) 19:10:58
>>699
鵺とか錵とかみたいな普通に使わない文字は出てこないと思います
とりあえずその方向で>>657の案に従ってみます

702 :名無しさん@そうだ選挙にいこう:2008/11/01(土) 19:24:10
:$C$7,2 ⇒ :$C$7,3
少しくらい努力しる!

703 :名無しさん@そうだ選挙にいこう:2008/11/01(土) 19:25:06
>>700
まだvlookupについて調べてないようだなw ヘルプぐらい読んどけな。

「=IF(ISNA(VLOOKUP($A1,表1!$A$1:$C$7,1,FALSE)),"",VLOOKUP($A1,表1!$A$1:$C$7,3,FALSE))」
これをC1に入れて下へコピー。

704 :690:2008/11/01(土) 19:39:21
>>702
>>703
申し訳ないです・・・でも本当にありがとうございます。
連休の間に土台仕上げれそうです。助かりました!

705 :名無しさん@そうだ選挙にいこう:2008/11/01(土) 22:15:50
【1 OSの種類         .】 Windowsxp
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 (マクロ入門)
      
A   B     C     D    E    F
1  商品名   No.  納品日
2                1日   2日  3日
3 コーラ    100          24
4 ペプシ    101    24         24
5 一番絞り  102    24         48
6 黒ラベル  103          48

 今、こんな感じで納品の管理してるんですが、
(商品No.)を入力したら (商品名)が画面に出力されて
 (納品日)を入力 (納入数)を入力すると自動的に
 所定のセルに納入数が入力されるやり方ってあるんでしょうか?
頭悪いコなんで、説明が分かりにくかったら教えてくれれば追記します。

イメージ的には表の上のほうに↑の操作ができるスペースをつくりたいんですが
お願いします。


706 :名無しさん@そうだ選挙にいこう:2008/11/01(土) 22:27:23
>>705
ワークシートの上だけでもなんとかできないことはないけど、
そういうのは普通はフォーム(入力フォーム)を作るもんだよ。

707 :名無しさん@そうだ選挙にいこう:2008/11/01(土) 22:30:23
>>706
なるほど。入力フォームを頑張ってつくってみます
サンクス

708 :名無しさん@そうだ選挙にいこう:2008/11/01(土) 22:34:36
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 並び替え 改行 縦 横

x A1 y B1, x A2 y B2, x A3 y B3
x A4 y B4, x A5 y B5, x A6 y B6
x A7 y B7, x A8 y B8, x A9 y B9

こんな感じで並んでるtxtデータがあって、Excelで使えるように

A1
A2
A3


B1
B2
B3


こんな風に並び替えたいんだけど、どうすればいいだろう
手作業ではキツイ量なので・・・

709 :名無しさん@そうだ選挙にいこう:2008/11/01(土) 22:53:06
>>708
xとかyってのは数字?で、xとyのペアがスペースとコンマで区切られて3つずつ並んでるの?

710 :名無しさん@そうだ選挙にいこう:2008/11/01(土) 22:56:57
>>708
AとBの2列じゃなくて縦1列に並べるの?

711 :名無しさん@そうだ選挙にいこう:2008/11/01(土) 23:08:12
>>709
そうです。xとyは記号で、数字だけを取り出したい。

一部抜粋すると、こうなってます。

  x  648 y  758,   x  638 y  968,  x  415 y  104
  x  470 y  428,   x  471 y  294,  x  472 y  972
  x  748 y  275,   x  474 y  294,  x  875 y  294
  x  476 y  294,   x  168 y  294,  x  455 y  858

>>710
直接Excelに出力するなら2列でも構いません。

712 :名無しさん@そうだ選挙にいこう:2008/11/01(土) 23:25:30
>>711
元のデータって列と行どれくらいあるの?

713 :名無しさん@そうだ選挙にいこう:2008/11/01(土) 23:35:40
>>712
列は>>711の通りで、これが600行くらい続きます。

714 :名無しさん@そうだ選挙にいこう:2008/11/01(土) 23:53:11
数字だけ取り出すなら貼り付けて区切り位置つかって
後は置き換えでxとy消せばいいとおもうんだが

順番が大事ならそのあと6列しかないんだし連番ふって並び替えでいいとおもう

715 :708:2008/11/02(日) 00:01:05
解決しました。ありがとうございます。

716 :671:2008/11/02(日) 00:31:10
>>688
うまくいきました!!
どうもありがとうございました。

717 :名無しさん@そうだ選挙にいこう:2008/11/02(日) 07:43:12
>>711
A1に貼り付け
データ→区切り位置→スペース
全体を選択、「,」を入れて置換後は何も入力せずに置換
B1に「x」が入ってたらok跡は
N1=INDIRECT("r"& INT(ROW()/3)+1-(MOD(ROW(),3)=0) &"c"& (MOD(ROW(),3)+IF(0=MOD(ROW(),3),3,0))*4-1 &"",0)
O1=INDIRECT("r"& INT(ROW()/3)+1-(MOD(ROW(),3)=0) &"c"& (MOD(ROW(),3)+IF(0=MOD(ROW(),3),3,0))*4+1 &"",0)



718 :717:2008/11/02(日) 07:51:33
ちと冗長だった
>>711
結果は同じだけど
=INDIRECT("r"& INT((ROW()-1)/3)+1 &"c"& (MOD(ROW()-1,3))*4+3 &"",0)
=INDIRECT("r"& INT((ROW()-1)/3)+1 &"c"& (MOD(ROW()-1,3))*4+5 &"",0)


719 :名無しさん@そうだ選挙にいこう:2008/11/02(日) 09:33:27
テキストエディタで
, → 改行
y → ,
x → 削除
スペース → 削除
って置換すれば普通のcsvになる。

720 :名無しさん@そうだ選挙にいこう:2008/11/02(日) 12:24:14
>>718
offsetの方が効率がいい

721 :名無しさん@そうだ選挙にいこう:2008/11/02(日) 13:58:21
>>720
ありがd
使ったことないなー

722 :名無しさん@そうだ選挙にいこう:2008/11/02(日) 19:33:57
EXCEL2003,および2007で,社内ネットワーク上のファイルを開くとき,
(1)はじめにEXCELを起動してから,「ファイルを開く」から選択する。
(2)エクスプローラなどで,当該のファイルを選択する。
の2つの方法がありますが,(1)は一瞬で開くのに対して,(2)は3分ほどの時間が
かかり,実用に耐えません。原因,及び解決策を教えていただきたいです。


723 :名無しさん@そうだ選挙にいこう:2008/11/02(日) 19:58:42
>>722
解決策:はじめにEXCELを起動してから,「ファイルを開く」から選択する。

724 :名無しさん@そうだ選挙にいこう:2008/11/02(日) 21:23:41
>719
勉強になりました

725 :名無しさん@そうだ選挙にいこう:2008/11/02(日) 23:18:48
>>722
やったことないけどドラッグ&ドロップは?

726 :名無しさん@そうだ選挙にいこう:2008/11/02(日) 23:49:43
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 勉強中
【4 VBAでの回答の可否】 可
【5 検索キーワード     】If〜Thenステートメント

日付 曜日 始業 終業 時間内 時間外

上のような勤務日報で土曜日のときに時間外に条件分岐して
入力したいのです。
今は相対参照のマクロで始業終業時間内が入るようになっていますが
就業時間入力後
If AcctiveCell Offset(0,-2).Range("A1").Value="土"Then
AcctiveCell Offset(0,2).Range("A1").Select.
AcctiveCell FormulaR1C1="8"
End If
時間内入力
といれても上手くいきません。多分基本的なことが
分かってないのでしょう。教えてください。
関数を入れれば簡単なのですが、事情があり関数は使えません。




日付 曜日 始業 就業 定時 時間外



727 :名無しさん@そうだ選挙にいこう:2008/11/02(日) 23:57:15
>>726
× AcctiveCell
○ ActiveCell

× ActiveCell Offset
○ ActiveCell.Offset

× ActiveCell.Offset().Range().Value
○ ActiveCell.Offset().Value
○ Range().Value
○ ActiveCell.Value


728 :名無しさん@そうだ選挙にいこう:2008/11/03(月) 00:00:11
(1) スペルが違う
(2) オブジェクトはスペースではなくピリオドで区切る
(3) 存在しないオブジェクトを参照している

729 :名無しさん@そうだ選挙にいこう:2008/11/03(月) 00:07:40
>>727,728
ありがとうございます。
スペルはVBAを見たら間違っていなかったです。tohoho
 その存在しないオブジェクトという意味がわかりません。
どういうう考え方で行けばいいのでしょうか?

730 :名無しさん@そうだ選挙にいこう:2008/11/03(月) 00:16:12
>>729
きちんと勉強したいならVBAの本をなんでもいいから1冊読む。基礎が出来たら必要に応じてMSDNを見る。
とりあえず動けばいいのならぐぐって人の作ったプログラムをコピペする。

731 :名無しさん@そうだ選挙にいこう:2008/11/03(月) 00:21:40
>>729
ActiveCell ←これがオブジェクト
Offset() ←これもオブジェクト
Range() ←そしてこれもオブジェクト
Value ←もちろんこれもオブジェクト

オブジェクトを並べる順番と使える組み合わせはきちんと決まっている。
このルールを破るとオブジェクトのエラーになる。
詳しいことはヘルプを見れば書いてあるけど、最初のうちはサンプルをコピペしつつ
ひたすら暗記していくしかない。

732 :名無しさん@そうだ選挙にいこう:2008/11/03(月) 07:38:43
>>726
やりたいことかけば誰かが造ってくれると思う
それを見ながら勉強するのもいいかも

733 :名無しさん@そうだ選挙にいこう:2008/11/03(月) 07:51:12
731はもっと勉強しなされ

734 :726:2008/11/03(月) 15:11:46
>>732やさしいご意見ありがとうございます。
731さんの言うことももっともなのでいろいろググってはいるのですが
なかなか良いサンプルが見つかりません。オブジェクトとは何かということは
わかります。本も持っているのですが、If〜ThenとOffsetを組み合わせる
やり方は載っていません。さてやりたいことですが、

日付 曜日 始業 終業 時間内 時間外

1  木   9:00 18:00 8
2   金   9:00 18:00 8
3   土   9:00 18:00 8
今、相対参照のマクロで9:00(基点) 18:00 8 とはいるように
なっているのですが、土曜日のときに時間外に 8 をいれたいのです。
今のマクロを生かしながらIf〜Thenを入れれば良いと思いますが、
親切な方教えてください。


735 :726:2008/11/03(月) 15:15:19
表がずれてしまいました。
土曜日は時間内が空白、時間外に8がはいります。
見苦しい点をご容赦ください。

736 :名無しさん@そうだ選挙にいこう:2008/11/03(月) 15:28:30
>>731
正確にはどれもオブジェクトではなくプロパティね
上3つに関しては戻り値としてオブジェクトを返すが
それら自体はプロパティというメンバの1つ
ActiveCellプロパティが返すのがActiveCellオブジェクトなら区別する必要も無いかも知れないが
ActiveCellプロパティが返すのはRangeオブジェクトだからな
更にRangeオブジェクトのValueプロパティに関しては、戻り値もオブジェクトじゃないし

ついでに言うと、「オブジェクトを並べる順番」なんて言い方は不適切だ
オブジェクトそのものは並べるものじゃない
オブジェクトの次(下)に並ぶのは、オブジェクトそのものではなくメソッドやプロパティなどの下位メンバ
それらの下位メンバがオブジェクトを返す場合は、その返したオブジェクトの下位メンバを更に次に並べられるだけ
そしてVBEならオブジェクトの持つ下位メンバは、オブジェクトの型が定義されていれば候補表示や自動補完が利くから
ひたすら暗記する必要なんて無く、よく使うものに関しては暗記してたほうが効率が良いって程度でしかない
まあテキストエディタでVBAコード書くなら話は別だがな

737 :名無しさん@そうだ選挙にいこう:2008/11/03(月) 17:12:41
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 全くわかりません
【4 VBAでの回答の可否】 否
【5 検索キーワード     】グラフ データマーカー

エクセルから散布図を作ろうとしているのですが、データマーカーで困っています。
オプションで組み込みの物からマーカーを選べるのですが、オリジナルで作ることは可能でしょうか?
選択肢の一番下に図のマークがあるので、どこからか読みこめるのではないかと思うのですが…
出来ないならそれで諦めもつくのですが、調べてもわかりません。
どなたかご存じの方おられましたらご教授ください。

738 :名無しさん@そうだ選挙にいこう:2008/11/03(月) 17:47:10
>>737
マーカーの種類の一番下のアイコンの意味はわからないけど、
マーカーの変更はExcelの前のバージョンと同じ手順で出来る。

まずワークシートにマーカー用の画像を挿入(メニューから挿入→図)。そしてその図形を切り取り。
次にグラフ内のマーカーをクリックして選択状態にしてから貼り付け(Ctrl+V)。
これで変更できる。

739 :737:2008/11/03(月) 18:09:39
>>738さま
ありがとうございます!できました!!こんな簡単な方法だったとは。
本当にありがとうございました!!

740 :名無しさん@そうだ選挙にいこう:2008/11/03(月) 19:54:18
>>734
Option Explicit
Sub unko()
Dim gyo As Long
Dim i As Long
gyo = Range("B10").End(xlUp).Row

For i = 1 To gyo
If Range("b" & i).Value = "土" Then
Range("b" & i).Offset(0, 4).Value = Range("b" & i).Offset(0, 3).Value
Range("b" & i).Offset(0, 3).Value = ""
End If
Next
End Sub
あえて冗長なコード。

741 :名無しさん@そうだ選挙にいこう:2008/11/03(月) 21:02:04
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 不可
【4 VBAでの回答の可否】 否

A列:商品コード    B列:商品名
0001          アイス1
0001          アイス1   
0001          アイス1
0002           チョコ 
0002           チョコ
0003           ガム
同じ「0001」の行を一まとめにして、0001、0002、0003としたいのですが…
お願いします。

742 :名無しさん@そうだ選挙にいこう:2008/11/03(月) 21:35:27
>>741
オートフィルタオプションで重複データを無視するか何か

743 :名無しさん@そうだ選挙にいこう:2008/11/03(月) 23:42:13
>>741
C2に=EXACT(A1,A2)と入力してオートフィルで下に引っ張る
オートフィルタでC列TRUEを抽出
TRUEのある行を全部削除

0001     アイス3
にしたいんだったら知らん、最初からそう言えと

744 :名無しさん@そうだ選挙にいこう:2008/11/04(火) 00:11:24
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否

Excelでセルへの貼り付けをハイパーリンクの挿入を選んでブラウズしたページを
選ぶと、ブラウズしたページが表示されますが、これをひとつずつセルに貼るのではなく、
すべてのブラウズしたページのURLをセルに貼る方法はないでしょうか。

PCが突然クラッシュしてしまい、必要なURLをブックマークに入れてなかったので
大量に閲覧した中からどこにあるか探したいのですが、
ひとつずつしかセルに貼る方法が見つからず困っております。

745 :名無しさん@そうだ選挙にいこう:2008/11/04(火) 00:31:15
>>744
とりあえずここ見て
http://efro.okwave.jp/qa3357497.html
んでヒストリーのファイルとお気に入りのフォルダをエクスプローラで開いて
コピーすればいいと思う
2000でやってみたら出来たけどxpでも通用するかは知らない


746 :名無しさん@そうだ選挙にいこう:2008/11/04(火) 00:40:50
>>745
レスありがとうございます。
その方法ではURLがわかるだけでHistoryフォルダの一覧のコピーはできないです。

747 :名無しさん@そうだ選挙にいこう:2008/11/04(火) 12:51:29
>>744
ttp://www.woodensoldier.info/soft/gh.htm

履歴を見るのはExcel単体では難しそうなのでスリーウェアで対応
リンク張りたいならVBAでも使えばいいんじゃない?


748 :747:2008/11/04(火) 13:07:20
スリーウェアってなんだ・・・orz
訂正
× スリーウェア
○ フリーウェア

749 :名無しさん@そうだ選挙にいこう:2008/11/04(火) 15:18:12
教えてください
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 エクセル 関数 分母
割り算をしたあとに書式設定で表示形式を分数にすると分数表示ができるのですが
その分母(できればついでに分子も)の数字を個別で取り出したいのです

たとえば
A1:1080
A2:6400
A3:=A1/A2
としてA3を分数表示にすると
27/160
になるのですが、ここからさらに
A4:27
A5:160
のように関数を使って分母と分子を抜き出すことはできますか?
分母だけでも抜き出せればA4の分子はなんとかできそうな気もしてはいるんですが・・・

750 :名無しさん@そうだ選挙にいこう:2008/11/04(火) 15:37:31
分析ツールをアドインすれば関数GCDで最大公約数が求まりますのでそれを利用

751 :名無しさん@そうだ選挙にいこう:2008/11/04(火) 15:43:44
最大公約数じゃねーやOTL

752 :名無しさん@そうだ選挙にいこう:2008/11/04(火) 15:44:22
さらにOTL

753 :名無しさん@そうだ選挙にいこう:2008/11/04(火) 16:09:13
>>749
=TRIM(LEFT(TEXT(A3,"# ???/???"),FIND("/",TEXT(A3,"# ???/???"))-1))
=TRIM(RIGHT(TEXT(A3,"# ???/???"),LEN(TEXT(A3,"# ???/???"))-FIND("/",TEXT(A3,"# ???/???"))))
※1/1000とかは誤差のため算出できない模様
もしくは>>750を取り入れて
=A1/GCD(A1,A2)
=A2/GCD(A1,A2)
かな?

17/13,1/1000,17/1024とかでテストしたら
GCD(17,1024)=1→17と1024になる
なのにTEXT(17/1024,"# ???/???")とセルの書式の方はは13/783になった
0.0166015625=0.0166→13/783って丸めてる模様

>>749が何をしたいのかにもよるけど最大公約数使ったほうがいい希ガスw

754 :753:2008/11/04(火) 16:20:00
書式設定をユーザー定義の「# ????/????」とかにして?をセルにある数値の最大桁数分にすればいいだけか・・・
でもこれだと1025/1024が「1 1/1024」
そして最大公約数は1
これでいいのか?

755 :名無しさん@そうだ選挙にいこう:2008/11/04(火) 17:36:35

xlsファイルが約1万点あります。(シートは1つしかありません)
それらをタブ区切りのテキストに書き出したいのですが、
いい方法はありませんでしょうか。


756 :名無しさん@そうだ選挙にいこう:2008/11/04(火) 17:50:00
>755
レスのbP〜6に従って質問しないと無視されますよ。


757 :名無しさん@そうだ選挙にいこう:2008/11/04(火) 17:56:12
グラフの軸の書式で、
単位を1.0E-6とかの指数表示でなく
1.0m (マイクロ) という表示は出来ますか?

758 :名無しさん@そうだ選挙にいこう:2008/11/04(火) 17:56:54
>>755
バイトを10人使って1000個ずつ処理させる
開いて名前を付けて保存、1個10秒として約3時間

759 :名無しさん@そうだ選挙にいこう:2008/11/04(火) 17:56:57
【1 OSの種類         .】 Windows2000
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 少し
【4 VBAでの回答の可否】 不可
【5 検索キーワード     】 2000 互換 2007
2007で作成したファイルを2000で開く方法を教えて下さい。
MSのホームページから
FileFormatConverters.exe をダウンロードして実行したのですが
2007のファイルを開こうとすると
ファイルの形式を認識出来ないというメッセージボックスが出て
うまく読み込めません。
どなたか宜しくお願いします。

760 :名無しさん@そうだ選挙にいこう:2008/11/04(火) 17:58:55
>>757
そのままではできない。
作業列に1000000倍した数値を用意しておく必要がある。

761 :757:2008/11/04(火) 17:59:51
質問テンプレ忘れていました、
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 不可
【4 VBAでの回答の可否】 不可

でお願いします。

762 :名無しさん@そうだ選挙にいこう:2008/11/04(火) 18:02:20
>>759
Office互換機能パックは、あくまでも新形式のファイルを読み書きできるようにするだけで
古いExcelをパワーアップする物ではない。
だから2007で強化された新機能を使ったブックは開くことができない。

763 :757:2008/11/04(火) 18:05:36
>>760
ありがとうございました。

764 :名無しさん@そうだ選挙にいこう:2008/11/04(火) 18:21:33
【1 OSの種類      】 WindowsXP pro sp2
【2 Excelのバージョン】 Excel2003
【3 VBAが使えるか  】 使えません
【4 VBAでの回答の可否】 不可
【5 検索キーワード  】 エクセル 書き出し 

xlsファイルが約1万点あります。(シートは1つしかありません)
それらをタブ区切りのテキストに書き出したいのですが、
いい方法はありませんでしょうか。



765 :名無しさん@そうだ選挙にいこう:2008/11/04(火) 19:12:38
【1 OSの種類        .】 Windows XP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 不可
【4 VBAでの回答の可否】 不可
教えて下さい。
あるSheatだけ文字入力後にセルを移動する方向を右にしたいのですが…
オプション→編集→入力後にセルを…だと全てのエクセルファイルで適用されてしまいます。
個別のSheatあるいは、ファイル単位で設定できないのでしょうか?

766 :名無しさん@そうだ選挙にいこう:2008/11/04(火) 19:53:28
>>764
がんばれ

>>765
Tab使え

767 :名無しさん@そうだ選挙にいこう:2008/11/04(火) 19:57:40
>>765
マクロ使わないとたぶん無理。
あと Sheat → Sheet

768 :名無しさん@そうだ選挙にいこう:2008/11/04(火) 20:01:09
>>764
マクロ使わないと無理。
VBA不可なら人海戦術しかない。がんばれ。

769 :名無しさん@そうだ選挙にいこう:2008/11/04(火) 20:11:54
>>767
回答とご指摘、ありがとうございますm(__)m
地道にマクロ組みます。

770 :764:2008/11/04(火) 20:30:08
>>768さん

マクロにトライしてみたいのですが、
参考なページありますでしょうか。

771 :766:2008/11/04(火) 20:41:07
レスの文字数少ないと無視されるのかな
言ってることは同じなのにw

>>770
一応、こういうのを使うという手もあるぞ
ttp://www.vector.co.jp/soft/win95/business/se426351.html

772 :名無しさん@そうだ選挙にいこう:2008/11/04(火) 20:43:18
>>770
テキストファイルで保存する方法
ttp://www.officepro.jp/excelvba/book_new/index9.html

773 :名無しさん@そうだ選挙にいこう:2008/11/04(火) 21:14:37
>771
おきのどくに、プッ

774 :名無しさん@そうだ選挙にいこう:2008/11/04(火) 21:16:34
>>770
そこから聞いてるようであれば書籍を買った方がいい
そこで金を惜しむような奴はwebの情報ではマクロは組めない
仮に組めても次に繋がらない

775 :名無しさん@そうだ選挙にいこう:2008/11/04(火) 21:44:25
表1
10/1 いちご 1個 
10/1 ぶどう 2個
10/2 いちご 1個
10/3 りんご 3個
10/3 ごりら 2個
10/3 ぶどう 1個

表2
10/1 150円 5000ポイント  1人
10/2 350円 200ポイント   5人
10/3 500円 10ポイント    15人

このような表がありまして以下の事をしたいのですが
表作りや方法などでアドバイスお願いします。

やりたい事
・日付ごとにソートもしくはピックアップ(VLOOKUPのような)感じで並べ替えたい
・例えば10/1をソートしたとしてオートフィルタを使えば容易いのですが
 表2も10/1分を表示させたいのです(10/1とつくものをすべて表示、もしくは上位にソートする)
 こうした場合、ひとつの表だと表2の部分がネックとなり表を分ける以外にうまいつくり方が思いつきません。
 アクセス向きな気もしますがご助言をお願いします。 

【そのた事項】
・表1の日付は重複しますが、表2の日付はかならず一意となります。

776 :775:2008/11/04(火) 21:50:10
わかりづらいので訂正します。

10/1の状態が見たいとした時に
10/1 いちご 1個 
10/1 ぶどう 2個
10/1 150円 5000ポイント  1人

こういう形で表示したいのです。いちごなどの品名はおよそ20種類くらいあり
一日ごとに種類を分けて表示しなければならないため
日付の行が重複します。
そのため表2を表1の列のつづきに加えると
10/1 いちご 1個 150円 5000ポイント  1人
10/1 ぶどう 2個 150円 5000ポイント  1人

このように冗長になってしまうので見栄えが悪くなってしまうのです。


777 :名無しさん@そうだ選挙にいこう:2008/11/04(火) 22:03:13
テンプレ使わないくせに長ったらしい質問する人には教えたくありません。

778 :名無しさん@そうだ選挙にいこう:2008/11/04(火) 22:09:04
>>755
ExcelのVBAでファイル開く→TAB区切りテキスト保存するってのをループ
させれば何時間かすればできるんじゃね。

779 :名無しさん@そうだ選挙にいこう:2008/11/04(火) 22:29:33
>>776
>こういう形で表示したいのです。
じゃあそれで作ればいいじゃん。何が聞きたいのかわからない

780 :名無しさん@そうだ選挙にいこう:2008/11/04(火) 22:36:25
マクロの記録

781 :名無しさん@そうだ選挙にいこう:2008/11/04(火) 23:05:59
>>764
ちとスレ違いな回答かもしれんが、その目的のファイルだけOOoで開いてみてはどうかな?
>>777
別に何でもいいから答えてあげればいいじゃん。答えないほうがよっぽど不要なレスだと思う
>>758みたいなネタのほうがよっぽど価値があるよ?実際採用するかもしれないしねw

782 :764:2008/11/04(火) 23:36:05
>>771さん、 >>772さん
ありがとう。

>>771さんのアドオン最高でした。



783 :名無しさん@そうだ選挙にいこう:2008/11/05(水) 00:07:19
XP 2003
アクティブセルの枠線(というのかセル位置を示す表示枠というのかな?)を
非表示にしたいのですが、できますか?
念のためですが方眼紙のようなセル枠のことではないです。


784 :名無しさん@そうだ選挙にいこう:2008/11/05(水) 00:26:33
10/1 いちご 1個 
10/1 ぶどう 2個
10/2 いちご 1個
10/3 りんご 3個
10/3 ごりら 2個
10/3 ぶどう 1個
10/1 150円 5000ポイント  1人
10/2 350円 200ポイント   5人
10/3 500円 10ポイント    15人

これでいいじゃないか?なにを悩んでるんだ?>>776


785 :777:2008/11/05(水) 00:40:16
>>781
ちょっと待て。俺のは教育だ。
強制力はないがルールがあるから教えてた。
お前の方がある意味無駄レスだ。

>>784
表が2つに分かれてるからフィルタが使えずVLOOKUP使ってるんだとさ。
一枚にまとめろというのは正論だな。

786 :名無しさん@そうだ選挙にいこう:2008/11/05(水) 01:18:49
>>783
アクティブセルが見えない位置までスクロール
そのまま(アクティブセルが見えない状態で)入力したいならフォームを使う

787 :777:2008/11/05(水) 08:56:08
>>783
ツール→オプションのどこか(表示あたり)に
「行列番号を表示する」のようなチェックボックスがあったはずだから
そのチェックを外す。

788 :名無しさん@そうだ選挙にいこう:2008/11/05(水) 09:42:32
選択範囲の囲み線のことだろ

789 :名無しさん@そうだ選挙にいこう:2008/11/05(水) 10:20:20
>>660
カメラ


790 :名無しさん@そうだ選挙にいこう:2008/11/05(水) 11:01:38
>>788
あーそれかー
すまん、787はスルーで。

791 :名無しさん@そうだ選挙にいこう:2008/11/05(水) 14:49:19
>>660
壁に貼るんなら別々に5枚印刷して並べて貼っても何も問題はないと思うんだけど、1枚にまとめたい意図は?
そもそも1枚の紙にグラフ5つじゃ、それぞれが小さくなって、壁に掲示するには適さないサイズになるような気も。

792 :名無しさん@そうだ選挙にいこう:2008/11/05(水) 19:47:16
>>784
それだと日付、名前、個数?と名前付けしてたときに
おかしくなるだろう。

日付 名前  個数  値段? ポイント 人数?
10/1 いちご 1個   150円  5000   1人
10/1 ぶどう 2個

これでオートフィルタでいいじゃん。同日は空欄な。


793 :名無しさん@そうだ選挙にいこう:2008/11/05(水) 21:24:44
>>792
>>776見てから言えよ

794 :名無しさん@そうだ選挙にいこう:2008/11/06(木) 16:27:58
>>775-776はいずこへ

795 :名無しさん@そうだ選挙にいこう:2008/11/06(木) 16:41:58
>>794
バカがよく釣れると考えつつニヤニヤしてる。

796 :名無しさん@そうだ選挙にいこう:2008/11/06(木) 17:44:24
>>777,787
批判や愚痴や感想、、、回答はしないの?

797 :名無しさん@そうだ選挙にいこう:2008/11/06(木) 20:10:26
突っ込みたい気持ちは分かるけど、雑談はほどほどに


798 :名無しさん@そうだ選挙にいこう:2008/11/06(木) 20:30:22
【1 OSの種類         .】 Windows Vista
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】エクセル グラフ マクロ 色分け

3次元縦棒グラフで一定値以上の棒を色分けしたいのですが、
マクロでどのように記述するか教えて頂きたいです。。。
C言語は触ったことがあります。



799 :名無しさん@そうだ選挙にいこう:2008/11/06(木) 20:59:09
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 エクセル 入力規制 関数 同じ行


同じ行内で、あるセルに日付を入力すると、もう一方のセルに日付が入っていたら
自動的に消したいのですが、どうすればよいかわかりません。



     A      B
1   成約日   見込み
2   11/7    11/6

成約した場合、A2に日付を入れるとB2の日付が自動的に消えるようにしたい。

A2とB2の両方に日付が入らないようにしたいです。

よろしくお願いします。

800 :名無しさん@そうだ選挙にいこう:2008/11/06(木) 21:14:57
>>799
むりです

801 :名無しさん@そうだ選挙にいこう:2008/11/06(木) 21:16:02
条件付書式で文字色を白にするとか

802 :名無しさん@そうだ選挙にいこう:2008/11/06(木) 23:27:58
>>798
C言語の知識があるだけでは無理でしょう。VBAでグラフを始めとするExcelの各機能を操作するには、
それぞれに固有のメソッドとプロパティを知らなくてはなりません。
とりあえず、こんな感じになります。

Sub Macro1()
 ActiveSheet.ChartObjects("グラフ 1").Activate

 With ActiveChart.SeriesCollection(1)
  f = .Formula ' 元データの範囲を取得
  f = Right(f, Len(f) - InStr(f, "!"))
  f = Left(f, InStr(f, ",") - 1)

  i = 1
  For Each x In Range(f)
   If x >= 5 Then ' 色分けの条件
    .Points(i).Interior.Color = RGB(255, 0, 0) ' 色1
   Else
    .Points(i).Interior.Color = RGB(0, 255, 0) ' 色2
   End If
   i = i + 1
  Next x
 End With
End Sub

803 :名無しさん@そうだ選挙にいこう:2008/11/06(木) 23:29:42
回答者のレベルが低い

804 :名無しさん@そうだ選挙にいこう:2008/11/06(木) 23:36:09
>>799
VBA使わないと無理

805 :名無しさん@そうだ選挙にいこう:2008/11/06(木) 23:36:48
>>803
自己紹介乙

806 :名無しさん@そうだ選挙にいこう:2008/11/06(木) 23:48:35
質問していいでつか?(かなり初心的だと思いますが。)よろしくおねがいします。
■あるデータがあるとして、、、関数を使って数値1をだす
→その数値1をまた関数を使って数値2をだしたい。。。のですができません。空白になってしまいます。
わかりません、くわしいかた教えてください、よろしくおねがいします。


807 :名無しさん@そうだ選挙にいこう:2008/11/06(木) 23:52:23
>>806
データと関数(数式)を具体的に書け

808 :名無しさん@そうだ選挙にいこう:2008/11/06(木) 23:58:10
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい(ちょっと)
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 オートフィルタ 複数列
お世話になります。

Excelのオートフィルタが便利でよく利用するのですが、次に示すことができないか教えてください。
簡単のために、次の4行3列の表を考えます。
 A B C
1 x y z
2 α a a
3 β b a
4 γ a b
オートフィルタは1行目にかけます。
ここで、2行目のB列またはC列に『b』が含まれる行のみ抽出したいです。
検索キーワードでヒットするページにあるとおり、
別途列を追加して、B列かC列に『b』が含まれるフラグの列を追加する、と、
B列かC列に『b』が含まれる行を簡単にフィルタで抽出できるのですが、列を追加するという方法をとらずに、ORのようなフィルタをかけることはできませんか?

よろしくお願いします。

809 :808:2008/11/07(金) 00:01:55
連投しつれいします。808です。

VBAのコードを書く際に、Excelの標準のVBAエディタを用いるほかに、編集する方法はありますか?
秀丸エディタで編集できれば、最も助かるのですが。
(検索時にハイライト表示したい。)
(タブや半角・全角スペースを目視できるように表示したい。)
(WinMargeなどで簡単に比較したい。(これをもっとも希望しています。今はコピペにより別ファイルに保存してから…))

御存知の方、どうか御教示の程、よろしくお願いします。

810 :798:2008/11/07(金) 00:10:12
>>802
やってみたところできました。
奥行きがあって見にくいデータも一目で確認することができました。
さらに数色に分けられるよう書いてみようと思います。
ありがとうございました!




811 :名無しさん@そうだ選挙にいこう:2008/11/07(金) 00:30:58
>>747
そのスリーウェアできちんと取れました。
ありがとうございました。

812 :799:2008/11/07(金) 00:51:54
皆様、回答ありがとうございます。
VBA使わないと無理ですか・・・。
VBAでもコードが複雑で難しくなりますか?
もし、そんなに難しくないコードでできるなら、
どなたか教えていただけませんか?
なんとか挑戦したいと思います。
よろしくお願いします。

813 :名無しさん@そうだ選挙にいこう:2008/11/07(金) 01:01:00
>>812
A2に何かデータが入ったらB2を消す

Private Sub Worksheet_Change(ByVal Target As Range)
If Range("A2").Value <> "" Then Range("B2").Value = ""
End Sub

たったこれだけのことなんだけど、VBAを使わないとできないんだよな。
印刷しない、あるいは別の数式で集計したり日時を調べたりしないんなら
条件付き書式で文字を白にして見えなくした方が簡単かも。

814 :名無しさん@そうだ選挙にいこう:2008/11/07(金) 01:01:14
2007なら条件付き表示形式で条件がそろったら "";"";"";"" になるようにすれば良いと思うけど

815 :名無しさん@そうだ選挙にいこう:2008/11/07(金) 01:05:48
>>814
それでもデータが見えなくなるだけで削除されるわけじゃないから白くするのと大差ないような

816 :799:2008/11/07(金) 01:14:55
>>813
>>814

早速、回答頂けて嬉しいです。
セルに日付を入れることで、別のIF関数に関連するように
なってます。
VBAに挑戦してみます!
条件付き表示の方法も試してみたいと思います。
助かりました。ありがとうございました。





817 :名無しさん@そうだ選挙にいこう:2008/11/07(金) 02:15:48
>>816
折角なので、複数セル対応版を書いてみた。
まだ見てるかわからんけど一応。

Private Sub Worksheet_Change(ByVal Target As Range)
If Cells(Target.Row, 2) <> "" Then
Cells(Target.Row, 2).Offset(0, -1) = ""
End If
End Sub

818 :名無しさん@そうだ選挙にいこう:2008/11/07(金) 02:32:29
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 複数条件 平均 可変データ

Aに年齢,Bに所属,Cに役職,Dに給与で構成された挿入・削除が可能なデータがあって,
別シートの指定セルに,例えばA社所属で役職が一般の人数,平均年齢・平均給与,B社所属で・・・等を
入れたいのですが,うまくいきません.年齢のデータは○歳という形式なのでaverageも使えないようです.
平均を出すためにまず合計を出そうとして,SUMPRODUCTが使えるとネットで分かったですが,ネットのはどれもデータ数が固定なので
安直に65536行まで調べるという手段に出たのですが,処理が重くどうにもなりませんでした.
SUMPRODUCT((sheet1!A2:A65536="A社") * (sheet1!B2:B65536="一般") * (sheet1!D2:D65536))
このような感じで記述しました.

819 :名無しさん@そうだ選挙にいこう:2008/11/07(金) 07:11:08
>>818
作業列を使ってピボットかなぁ
A2に年齢が入ってるとするとE2辺りに=SUBSTITUTE(B2,"歳","")*1
そんでピボットにほうりこむ

820 :名無しさん@そうだ選挙にいこう:2008/11/07(金) 07:41:35
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 エクセル 入力規制 リスト

エクセルのセルに、リストから選択する形式での入力制限をかけたいのですが、
下記のようにリストの1バイト目(数値)のみをセルに反映させる仕様にできないでしょうか。

例)
プルダウンリスト 左記のプルダウンを選択後、
          セルに反映させたい値
1:対応未定        1
2:次期対応        2
3:対応済み        3
4:未定           4

以上です。
よろしくお願いします。

821 :名無しさん@そうだ選挙にいこう:2008/11/07(金) 07:46:40
>>820
作業列作って=LEFTB(A1,1)みたいにしてそこに名前の定義付けてリストの対象かなぁ


822 :名無しさん@そうだ選挙にいこう:2008/11/07(金) 09:54:35
2007を使っています。
パスワード付きでexcelで貰ったファイルがあるのですが
毎回パスワードを入力するのが面倒です
パスワード入力が不要になるように編集したいのですが
どうすればいいのでしょうか?

823 :名無しさん@そうだ選挙にいこう:2008/11/07(金) 10:00:41
>>822
2007のファイルで通用するか分からないけど、
新規ブック作ってそこにシートをコピー

824 :名無しさん@そうだ選挙にいこう:2008/11/07(金) 10:00:51
あるセルに文字列があって、そのセルに

AAA-X11-BBB
CCC-X10-DDD
(A,B,C,Dは数字とアルファベットが入ります)

の、ようになっています。
別のセルにIF文を使って、X11が含まれていたら1を出力、
X10が含まれていたら2を出力、ということをやりたいの
ですが、何かやり方はありますか?


825 :名無しさん@そうだ選挙にいこう:2008/11/07(金) 10:29:27
>>823
コピーするとパスなしで開けました
ありがとうございました

826 :名無しさん@そうだ選挙にいこう:2008/11/07(金) 11:00:54
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 シート、ロック、保護、メッセージ

複数のセルをロックしてシートを保護
保護されたセルをダブルクリックした時に出るシステムメッセージ
「変更しようとしているセルまたはグラフは保護されているため・・[OK]」を表示しないようにしたい

ようは間違えて保護されたセルをダブルクリックした時のメッセージが鬱陶しい
(いちいちOKを押すことを強要される)んで
Worksheet_BeforedoubleClickっでCancel = Falseにした時のような”無反応”を
ロックしたセルだけに適用したいということです

ネット検索で見つけたのは
・アクティブなセルごとにVBA(←ロックしたセルは不規則に散在しており労力かかりすぎます)
・セルに透明なテキストボックスを被せて、それのクリックイベント無しにすればいい(←それはちょっとw)
・「システムメッセージの意味わかってますか?警告何ですよ?出て当然です!」
等でした

「特定のセルは編集できないようにしてる」って担当者には説明してますんで、メッセージは不要なのです

827 :826:2008/11/07(金) 11:12:29
あ、できた・・すいません、質問終了します・・

If ActiveCell.Locked = True Then
Cancel = True
Exit Sub
End If

828 :名無しさん@そうだ選挙にいこう:2008/11/07(金) 11:18:07
>>824
=IF(ISERR(FIND("X10",A1)),IF(ISERR(FIND("X11",A1)),"",1),2)
かな?

829 :名無しさん@そうだ選挙にいこう:2008/11/07(金) 14:37:37
【1 OSの種類         .】 Windowsxp
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】fornext
表に色を付ける処理を自動化しようと思っています。
A列
a
o
q
q
q
k
k
o
a
a
l

と1000行-2000行ほどありまして、A列で同じものが並ぶとき(qとk、下のほうのaのとき)に同じ行のK列のデータに色を付けたいのですが、
そして色をつけるごとに違う色を付けたいと思っています。
qで黄色を付けた場合は、kの時は青色、aは黄色と言った具合です。
ただqとkの境目が分かればいいので、あまケバくならないように二色に収めたいと思っています。

これを実現するにはどういうコードを書けばよいでしょうか?
fornextで入れ子にすれば良いのかな?と思いましたが、
同じものが何個も続く場合、どう処理していいものか分かりません・・
よろしくお願いします

830 :名無しさん@そうだ選挙にいこう:2008/11/07(金) 15:28:21
>>829
Forのどこを入れ子にしようとしたのか想像できなかった
とりあえず適当に書いてみたんだが・・・

Private Sub aaa()
 Dim rg As Range
 Dim flg As Long
 Dim myColor(1) As Long
 myColor(0) = vbYellow
 myColor(1) = vbBlue
 For Each rg In Range("A:A")
  If rg.Value = "" Then Exit For
  '下のセルと同じ
  If rg.Value = rg.Offset(1, 0).Value Then
   rg.Interior.color = myColor(CLng(flg))
  ElseIf rg.Row > 2 Then
   '下とは違うけど上のセルと同じ
   If rg.Value = rg.Offset(-1, 0).Value Then
    rg.Interior.color = myColor(CLng(flg))
    flg = (flg + 1) Mod 2'色の切り替え
   End If
  End If
 Next rg
End Sub


831 :名無しさん@そうだ選挙にいこう:2008/11/07(金) 15:44:54
>>830
すいません、色が付きません・・

832 :困っています:2008/11/07(金) 15:49:18
困っています :2008/11/07(金) 15:00:04 0
輸入ゴマから残留農薬検出 厚労省が全貨物検査命令 - 2時間前
とだけ切り取っても、エクセルに貼り付けると

ゴマ - Google 検索
輸入ゴマから残留農薬検出 厚労省が全貨物検査命令 - 2時間前
と反映がなります。いつも、検索用語が一緒についてきて困っています
エクセルで貼り付けるときだけ起きるのです。

IEのキャッシュとTEMPを削除して再起動したのですが、駄目でした。
ちなみに、ワードでは同じことは起きません。
エクセルに変な機能があり、それを私がいじったのでしょうか?

検索用語まで勝手に記録されて貼り付けられるのは何故だろう。
すいません。ワードでは大丈夫です。
普通の掲示板への貼り付けは大丈夫なんです
訂正)形式を選択して貼り付けですが、テキストを選んでも、HTMLを選んでも、同じになります。


833 :830:2008/11/07(金) 16:13:09
>>831
829のデータでテストしたらちゃんと色が付いてるんだがな・・・
もしかしてデータが始まる行までに空白がある?
もしそうなら「Range("A:A")」を書き換えて
「If rg.Value = "" Then Exit For」を消せばいけるはず
ってこの程度のことはもうしてるよな?w

834 :名無しさん@そうだ選挙にいこう:2008/11/07(金) 16:18:15
>>833
してませんでした!できました!ありがとう!!

835 :名無しさん@そうだ選挙にいこう:2008/11/07(金) 19:19:40
>>832
毎回同じ語句が付加されるならマクロなどのExcelの機能が関係している可能性もあるが
付加されるのがコピーしている内容に関連する内容って事は、クリップボード内にその語句が有るって事で
つまりは貼り付ける時の問題ではなくコピーするときの問題でExcelは関係ない。
例えExcelでしか再現しないとしてもスレ違いなので宜しく

因みにWebの色つき文字などをコピーしてExcelやWordに貼り付けると
文字色も引き継がれるが、メモ帳に貼り付けると黒文字になるように
クリップボードの内容に文字色などの修飾やリンクなどの付加情報が有っても
貼り付け対象によってはその情報が貼り付けられない場合もある

836 :名無しさん@そうだ選挙にいこう:2008/11/07(金) 19:50:26
聞いたことないね>>832、真似てみたけど、再現するはずもなく
改行入りコピペとかそんなレベルの人でもなさそうだし

どういう状況なんだろう

837 :名無しさん@そうだ選挙にいこう:2008/11/07(金) 20:36:04
excel2002(winXP)で作成したデータですが、
1〜9行目まで:テキストボックスやワードアートがある
 10行目  :項目名
 11行目以降:データ、という構成で、印刷範囲はA〜Fというように列ごと指定しています。

これを2007(winXP)で読み込んで、印刷プレビューで見ると、一部のテキストボックスや
ワードアートが消えるのです。プレビューしなければ消えませんが印刷すると消えたりずれたりします。

この現象は印刷範囲をクリアしたり、列ごとの範囲指定をやめてA1〜A150などとすると治ります。
おそらく列ごと印刷範囲をすると、2007では行数がすごく増えたのでそのエラーではないかと思うのですが、
Microsoftの技術情報にも出ていないので想像だけです。

行のデータが今後も増え続けるし頻繁に印刷するのでどうしても列ごとの印刷範囲を設定したいのですが、
回避できる方法はあるでしょうか。なお、A1〜A5000などと余分に印刷範囲を指定すると
データがなくても5000行分出てしまうのでだめでした。長くてごめんなさい。

838 :799:2008/11/07(金) 20:42:20
>>817

返事が遅くなりすみません。

今日、会社でVBAに挑戦してみましたが、私のスキル不足でできませんでした。
マクロ作成からVBAコードを入れると
コンパイルエラーでEnd subが必要です。となってしまって・・・。
基本がわかってないので、やり方が間違っているんでしょうね。。。
この休日にちょっと勉強してみます。
ありがとうございました。


839 :名無しさん@そうだ選挙にいこう:2008/11/07(金) 22:02:55
>>838
End Sub というのは [Private] Sub Worksheet_Change(...) に「『以上』が『記』に対応する」みたいに対応する
要するに「Subで書いた処理はここまでで終わりだよ〜ん」っていう命令。

これがないと、延々と下に終わりを求めて彷徨う結果になる。

840 :名無しさん@そうだ選挙にいこう:2008/11/07(金) 22:13:45
>>817
B列に何か入ったらA列を消すになってるぞ

841 :799:2008/11/07(金) 22:46:01
>>839
今、挑戦してますが上手くいきません。。。
以下の手順で良いですか?

1 エクセルのツール→マクロ→マクロ名入力(seru)→作成

2 モジュールコードにコードを入れる。
 
Sub seru ()
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("A2").Value <> "" Then Range("B2").Value = ""
End Sub
End Sub

3 実行を押すと  Sub seru ()が黄色くなり 
「コンパイルエラーです End Sud が必要です。」

VBA超初心者の質問ですみませんが、
End Subは Sub seru()の分も入ってると思うのですが???

教えて下さい。

842 :名無しさん@そうだ選挙にいこう:2008/11/07(金) 22:53:55
>841
最初と最後の行が不要です。真ん中の3行だけでいいんです。

843 :名無しさん@そうだ選挙にいこう:2008/11/07(金) 22:56:32
もうひとつあった。ifに対するend ifがない。
end subの前にend ifを入れる。

844 :841:2008/11/07(金) 23:02:52
>>842
この3行だけ入れて実行を押すと、
マクロの名前つけるウィンドウが出てきます。
なので仕方なく名前を入れて→作成 すると
Sub seru()

End Sub

が出てきてしまいますが・・・。
どうすれば良いのでしょう???

すいません。
周りにVBA使える人がいないので聞けなくて・・・。



845 :名無しさん@そうだ選挙にいこう:2008/11/07(金) 23:04:52
Sub マクロ名()というのは、マクロ名を指示して実行させるときの書き方です。
799の「あるセルに日付を入力すると」というように「なにかの操作」でマクロを
実行するときにはマクロ名ではなく、イベントを書くのです。

ここまで書いてよくみたら、どのセルに何かを入れてもマクロが動くようになって
しまってますよ。A2とB2だけでいいのかな?

846 :841:2008/11/07(金) 23:12:21
>>845

イベントを書く???
ますます???になってきました。

最終的にやりたいことは・・・
指定の列にマクロを効かせたいのですが、
B2に日付が入っていてA2に日付を入れたら、B2の日付が削除される。
このマクロを実行したいです。






847 :名無しさん@そうだ選挙にいこう:2008/11/07(金) 23:14:42
だから、マクロを指定して実行じゃダメなんです。マクロを書いたらVBAエディタを
終了するんです。実行ではありません。
今試してみたら、if文は1行で書いたらend ifは要らないんですね。

エディタを終了して、B2に何か入力してください。
次にA2に何か入力するとB2セルの内容が消えるはずです。
A2に何か入っている限り、B2に入力してもすぐ消えます。

848 :名無しさん@そうだ選挙にいこう:2008/11/07(金) 23:18:06
Private Sub Worksheet_Change(ByVal Target As Range)
は「ワークシートになにか変化があったときに実行するマクロ」ということなんです。

だから、このマクロを動かすには、エディタの画面からではなく、
セルに何か入れるとか削除するとか、とにかくシートに変更を加える度にマクロが実行されます。


849 :841:2008/11/07(金) 23:26:55
>>847
何度もすみません。
モジールコードの画面から、
「終了してEXCELに戻る」で良いんですよね?
それでExcelの画面になり、数値を入れてみましたが
動きませんでした。

コードはコピペしてるので間違ってないと思います。
イベントとして書く場合は、ツールのマクロからVBAに入ってはダメですか?




850 :名無しさん@そうだ選挙にいこう:2008/11/07(金) 23:41:50
当方Excel2003なのでちょっと違うのかもしれないけど、
こちらのやり方です。

1 このスレの841のマクロの2行目から4行目までをコピー
2 エクセルに切替
3 ツール-マクロ-VBエディタ(この時点ではコードを書く部分がない)
4 画面左上のSheet1(Sheet1)をダブルクリック
 →シート1のマクロコードを書く部分が表れる
5 貼り付け
※念のため、メニューからデバッグ-VBAProjectのコンパイルを実行
(綴りの間違いがあればエラーになる)
6 VBエディタの画面を閉じる
7 B2セルに何か入れる→表示される
8 A2セルに何か入れる→B2セルの内容が消える

こんな風になりませんか?

851 :841:2008/11/07(金) 23:57:52
>>850

丁寧にわかりやすく、手順を記載して頂いてありがとうございました。
自宅のPCは2003なので、この順番通りやってみました。
デバックもエラーもなくVBエディタを閉じて、B2とA2のセル
に値を入れてみましたが、消えませんでした。。。
なんででしょう???

私のPC壊れてるのかな???


852 :名無しさん@そうだ選挙にいこう:2008/11/08(土) 00:03:47
壊れてるのは頭だろ

853 :名無しさん@そうだ選挙にいこう:2008/11/08(土) 00:14:21
イベントを発動させたいシートはSheet1で合ってるの?

854 :841:2008/11/08(土) 00:23:32
>>853

オブジェクトはsheet1で合ってます。
Sheet1(コード)ウィンドウにマクロコードを貼り付けてあります。
そして値を入れているのもsheet1・・・。
他の設定とかの問題ですかね〜???


855 :名無しさん@そうだ選挙にいこう:2008/11/08(土) 00:27:43
>>817
なんでいちいちOffsetを使うのか

Cells(Target.Row, 2).Offset(0, -1) = ""

Cells(Target.Row, 1) = ""

でいいんじゃね?

856 :名無しさん@そうだ選挙にいこう:2008/11/08(土) 00:36:38
>>854
(1) Excelを起動する
(2) VBEを起動する (Alt+F11)
(3) 左のペインから「Sheet1 (Sheet1)」と書いてある部分をダブルクリック
(4) 開いたウィンドウの左上のリストボックスを、初期状態の「(General)」から「WorkSheet」に変更
(5) 同じく右上のリストを「SelectionChange」から「Change」に変更
(6) するとエディタ画面に自動的に>>813のマクロの1行目と3行目が出るので、残りの2行目だけをコピペ
(7) Excelの画面に戻ってB1、A1の順に何かデータを入れてみる

857 :856:2008/11/08(土) 00:37:44
訂正
(7) Excelの画面に戻ってB2、A2の順に何かデータを入れてみる
               ↑ ↑

858 :841:2008/11/08(土) 00:38:54
新しいエクセルブックで、再度850の手順をやったら
できました!!!
初VBAです。

超初心者の私に、親切に教えて下さった皆様、
ありがとうございました。
助かりました。

また、悩んだ時はよろしくお願いします。






859 :名無しさん@そうだ選挙にいこう:2008/11/08(土) 00:59:41
いじってる内にマクロ無効で開いてたとかじゃね

860 :名無しさん@そうだ選挙にいこう:2008/11/08(土) 11:45:06
>>812
VBAなんか使わずに、条件付き書式でA2にデータが入っていたら
B2の文字色を白にするとか、背景を黒にして字が見えなくするとか、
あるいは表示形式でなんかうまく処理するとかできますよ。

861 :名無しさん@そうだ選挙にいこう:2008/11/08(土) 12:13:38
>>860
既出
本人がVBA使ってでも削除したいっていうんだから仕方ない

862 :名無しさん@そうだ選挙にいこう:2008/11/08(土) 12:59:03
すみません。質問なんですが。
競馬の配当の表をEXCELに取り込んでそれぞれの合計を調べたいんですが
どうすればいいでしょうか?
例えば↓の表から1日の三連複の配当の合計を調べたいんですが。
http://www2.keiba.go.jp/keibaWeb/PageFlows/RaceInfo/A3.do?k_babaCode=11&k_raceNo=6&k_raceDate=2008%2F11%2F01#6R

863 :名無しさん@そうだ選挙にいこう:2008/11/08(土) 13:06:22
後、他に質問が2つあるのですが
・ある範囲の中からA以上でB未満のものの数を数える方法はありますか?
・ある範囲で最も大きい数を表示させる方法はありますか?また2番目に大きい数を表示させるものはありますか?

864 :名無しさん@そうだ選挙にいこう:2008/11/08(土) 13:08:00
>>862
そのページの表を右クリック→「Microsoft Excelにエクスポート」を選ぶと、
自動的に一覧表がコピーされる。
次に「円」をすべて削除。(円を空白にすべて置換)
あとは普通に計算が出来るようになる。

865 :名無しさん@そうだ選挙にいこう:2008/11/08(土) 13:10:02
>>863
Excelのバージョンが2007かそれ以外かで方法が変わってくるが、とりあえず作業列を使えば数えることはできる。
順位を調べるのはRANK関数。これで2番目の物を探せばいい。

866 :名無しさん@そうだ選挙にいこう:2008/11/08(土) 13:18:38
>>865
すみません。バージョンは2003です。
EXCELあまり使わないもので、もう少し詳しく教えていただいても良いですか?
わからないのは次のものです。
・円を空白にすべて置換
・ある範囲の中からA以上でB未満のものの数を数える方法
・RANK関数で例えば2番目に大きいものだったら、範囲には探す範囲、順序には2、数値には何を入れれば良いのか
教えてください。お願いします。

867 :名無しさん@そうだ選挙にいこう:2008/11/08(土) 13:30:36
>>866
すみません。3つ目は解決できました。LARGEを使いました。

868 :名無しさん@そうだ選挙にいこう:2008/11/08(土) 13:42:39
>>866
1番目も解決できました。
・ある範囲の中からA以上でB未満のものの数を数える方法
だけどなたか詳しく教えてください。

869 :名無しさん@そうだ選挙にいこう:2008/11/08(土) 13:56:02
質問から30分で2つ解決したんだ あと15分かけて検索すれば残りひとつも解決するよ

870 :名無しさん@そうだ選挙にいこう:2008/11/08(土) 14:17:03
>>869
わからないので教えてください。お願いします。

871 :名無しさん@そうだ選挙にいこう:2008/11/08(土) 14:31:29
>>870
COUNTIF をうまく使おう

872 :名無しさん@そうだ選挙にいこう:2008/11/08(土) 14:36:11
対象となる文字の優劣の規則性が、あなたの脳内でしかわからないから
ハッキリとは言えないが、文面からすると
1.CODE関数を使って、文字(アルファベット)を数値に変える
2.そしてCOUNTIF関数で数を数える
これでどうだ?

873 :名無しさん@そうだ選挙にいこう:2008/11/08(土) 14:38:27
>872のレスは、>>866,>>870へのレスれす

874 :名無しさん@そうだ選挙にいこう:2008/11/08(土) 14:38:28
>>871
ありがとうございます。
条件には何を入れれば良いのでしょうか?
例えば1以上3未満の数を数える場合には。

875 :871:2008/11/08(土) 14:38:52
AとBってのには数値が入るんじゃないの?

876 :名無しさん@そうだ選挙にいこう:2008/11/08(土) 14:40:09
>>875
そうです

877 :名無しさん@そうだ選挙にいこう:2008/11/08(土) 15:01:00
>>876
だったら、COUNTIFの使い方は
ヘルプで丁寧に解説してあるよ

878 :名無しさん@そうだ選挙にいこう:2008/11/08(土) 15:43:20
込み入った質疑にはさまれて目立たなくなった>>837
どうぞよろしくお願いします。


879 :名無しさん@そうだ選挙にいこう:2008/11/08(土) 17:51:01
【1 OSの種類         .】 Windows Vista
【2 Excelのバージョン   】 Excel 2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 excel ロック 一部だけ

sheet1は読み込みも編集もできるが、
sheet2はパスワードを入力しないと読み込みも、編集もできないようにしたいのですが、
一部だけにパスをかけることはできますか?
お力貸していただきたいです。

880 :名無しさん@そうだ選挙にいこう:2008/11/08(土) 18:21:43
>>879
シート1を全選択してセルの書式設定から保護を外す
んでブック保護
・・・と思ったがこれだと読み込みはできちゃうな

881 :名無しさん@そうだ選挙にいこう:2008/11/08(土) 18:35:08
>>879
sheet2を隠して保護掛けるのはどう?

882 :名無しさん@そうだ選挙にいこう:2008/11/08(土) 19:30:42
>>861
あはは、レス全部読まずに書いたんだけど、はっきりいっていったん
入力したデータを消してしまうのは、データ管理として邪道と思うなぁ。
予定と実績を過去にさかのぼって残しておくのって、重要なことなん
だけどねって、まあ他人のことはどうでもいいや。

で、間違って実績データを入力してしまって、予定が消えたー
なんてトラブルが予想できるのはここだけの話。

883 :名無しさん@そうだ選挙にいこう:2008/11/08(土) 19:35:55
>>874
初心者ならIFを入れ子にすればよし。
一気に指揮で解決するのではなく作業列作って順番に処理。
たとえば最初の作業列で1以上だけ書き出す。
二番目の作業列で1以上で抽出した中から、5以下を抽出する。
いろいろやっていくうちに、これ一気に処理できないかなーとなり、
解説サイトを見て、おおーー、と感激し、それで記憶に残る。
急がば回れ。
そうすれば自分の思い通りにExcel操れるようになっていく。

884 :名無しさん@そうだ選挙にいこう:2008/11/08(土) 19:40:32
>>837
ようくわからんが、Excelの印刷って思い通りにいかないことが多い。
で、消えるテキストボックスってのは、プレビューで見たとき、紙の
端っこの方の部分?
その場合は、一番右のデータが入っている列の次の5列ぐらいを
標準の幅ではなく、見た目5mmぐらいの狭い列にしておく。
そうするとうまくいくことがある。

あと、古いプリンタだとドライバのせいかうまくいかないことがあり、
この場合はあきらめるしかないことが多い。


885 :名無しさん@そうだ選挙にいこう:2008/11/08(土) 19:52:25
XP 2003 VBAでの解答を求むもので、丸投げorz orzでお願いします。

sheet1にcsvデータ(区切り文字は半角スペース)のexcelファイルで、
A5に項目名があり(7項目)、A6〜A400までにデータがあるのですが、
6項目目が会社名なのですが、半角スペースで区切ってあるため、
各レコードの空白で区切ったデータ数は7〜9となっています。

sheet2に各セルに項目毎のデータが入った形にするマクロを
お願いします。


886 :名無しさん@そうだ選挙にいこう:2008/11/08(土) 21:06:16
わざわざVBAでやろうとする理由がわからない

887 :名無しさん@そうだ選挙にいこう:2008/11/08(土) 21:33:13
>>885
そもそもソースとなるCSVデータが半角スペース区切りなわけ?
だったらデータを挿入する操作でテキストデータを取り込む。
あとは区切り文字を指定する画面が出てくるから、スペース
区切りにすればいいだけ。
2007しかないから以前のバージョンでどのメニュー化は忘れた。
確か挿入のなかのデータだかテキストだかだった気が、、、

888 :名無しさん@そうだ選挙にいこう:2008/11/08(土) 22:10:01
>>885
マクロの記録で区切り位置使ってコピーすれば?


889 :名無しさん@そうだ選挙にいこう:2008/11/08(土) 22:31:48
>>885
処理したいデータ(ブック)はたくさんあるの?
シート1枚分しかないんなら
いったんテキストファイルに書き出して、区切り文字をスペースにしてもう一度読み込むだけで
分割できるよ

890 :885:2008/11/08(土) 22:56:50
>>886-888 サンクス
データ→区切り位置コマンドで区切り位置指定ウィザードが開くことを知りませんでした。
おかげで、操作による方法と、マクロ組み立てとが、出来そうです。職場で試します。
「excel 区切り位置」で検索したら、マイクロソフトのサポートオンラインがトップに出て・・・、
キーワードの選択ミスで随分時間がかかった悲しい例となりましたorz


891 :名無しさん@そうだ選挙にいこう:2008/11/08(土) 22:59:22
>>882
同感だ。管理形態やデータ構成から見直した方がいいようなケースでも、
小手先のワザで解決してしまうことが多々ありそうだと常々思ってる
ま、こっちもそこまでサポートできるはずもなく、仕方ないな

892 :885:2008/11/08(土) 23:00:58
>>889
書くのが遅いもんで、890を書き込んでから、気付きました。
重ねて、サンクス。


893 :名無しさん@そうだ選挙にいこう:2008/11/08(土) 23:02:55
【1 OSの種類         .】 WindowsXp
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】
【4 VBAでの回答の可否】
【5 検索キーワード     】

初歩的な質問ですみませんがどなたか教えてください。
エクセルで100人ほどの名簿を作りました。
その名簿から一人一人の名前が入った受験票のようなものを作りたいのですが、
作った名簿を利用して受験票を作る方法がわかりません。
調べようにもどのワードで検索してもそれらしきものが引っかかりません。
どなたか教えてください。




894 :名無しさん@そうだ選挙にいこう:2008/11/08(土) 23:14:01
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 関数を引用、関数を返す、数式を引用

今、
A1に =RANDBETWEEN(1,100)
B1に =IF(AND(1<=A1,A1<=10),1,0)
があります。(10%の確率で 1 を返す。)

状況に応じて、B1の関数を入れ替え、1 を返す確率を変更したいと思い
そのためにVLOOKUP()を用いることを考えましたが
関数そのものを引用する方法が分からず、つまづいています。

関数を他のセルから引用することは可能でしょうか。
ご教授お願いいたします。

895 :名無しさん@そうだ選挙にいこう:2008/11/08(土) 23:34:40
>>893
Excelで作った名簿から人数分の何かを印刷するときはWordと組み合わせて「差し込み印刷」をするのが定番

896 :名無しさん@そうだ選挙にいこう:2008/11/08(土) 23:47:25
>>895
ありがとうございました。早速やってみます。

897 :名無しさん@そうだ選挙にいこう:2008/11/08(土) 23:52:32
>>894
10%の確率で1を返す式はもっと簡単にできる。例題に合わせると、A1は不要でB1に
=1*(RAND()<10%)
と入れるだけ。
で、確率を変える時は式や関数を変えるんじゃなくて確率の数字だけを変えるのが普通。
たとえばC1に確率が入っていたら
=1*(RAND()<C1)
のように書く。

898 :名無しさん@そうだ選挙にいこう:2008/11/09(日) 00:28:39
>>897
どうもありがとうございます。

どうやら、RANDをしっかり理解していないために
妙にこねくり回したことが躓きの原因だったようですね

それでは、スロットの子役確率からt分布を用いて信頼区間を導く
シミュレーターを作る作業に戻りたいと思いますw

899 :名無しさん@そうだ選挙にいこう:2008/11/09(日) 15:24:51
セルのなかに文字が書いてあってそのまま文字打つと
もともと書いてあった文字が消えるじゃないですか
消さないでキーボードで追記するにはどうすればいいですか?

900 :名無しさん@そうだ選挙にいこう:2008/11/09(日) 15:33:07
[F2]

901 :名無しさん@そうだ選挙にいこう:2008/11/09(日) 17:33:41
さんくす

902 :名無しさん@そうだ選挙にいこう:2008/11/09(日) 17:35:02
>>884
エクセルの一般的な表示の問題ではないのです。
プレビューすると、ワードアートやテキストボックスがまるっきり表示されなくなるという現象です。

ファイルを開く→通常通り表示されている→プレビュー→とワードアートやテキストボックスが消える。
(保存後再度開いても再び通常通り表示される)
ファイルを開く→印刷→ワードアートやテキストボックスが異常にずれたり消えている。

で、印刷範囲をA:Fではなく、A1:F100などに変えると上記の現象はなくなる。


903 :名無しさん@そうだ選挙にいこう:2008/11/09(日) 18:16:15
>>902
Office Updateはチェックした?
印刷関係のアップデータがあったような気がするんだけど

904 :名無しさん@そうだ選挙にいこう:2008/11/09(日) 19:10:33
エクセルについて質問です。

例えば、麻雀の成績で
A:○,+30,+20,+10,-10
B:+40,○,+10,+40,-30
C:+10,-20,○,-10,+20
D:-20,-50,-10,○,+20
E:-30,+40,-20,-40,○

このような成績になって
AがBのいる時の成績を算出するにはどのようにすればいいのですか?
今回の場合なら+20です


905 :名無しさん@そうだ選挙にいこう:2008/11/09(日) 19:24:58
LOOKUPかINDEXで

906 :名無しさん@そうだ選挙にいこう:2008/11/09(日) 19:37:58
>>905
合計を求めることが出来ない気がするんですけど・・・

907 :名無しさん@そうだ選挙にいこう:2008/11/09(日) 20:05:05
合計って? どういう計算式なの?

908 :名無しさん@そうだ選挙にいこう:2008/11/09(日) 20:24:19
AとBの双方が参加したゲームの得点の合計を出したい。○印が不参加。
この例だと1ゲーム目はAが不参加だから足さない、2ゲーム目はBが不参加だから足さない。
3ゲーム目から5ゲーム目のAの得点は+20、+10、-10だから、合計は+20。
こういうのは配列数式なら一発。

909 :名無しさん@そうだ選挙にいこう:2008/11/09(日) 20:26:26
>>903
チェックしてなかった。ありがとう。明日やってみるよ〜。


910 :名無しさん@そうだ選挙にいこう:2008/11/09(日) 20:52:09
>>908 なるほど。
A B C D E F G
1 A:○,+30,+20,+10,-10
2 B:+40,○,+10,+40,-30
3 C:+10,-20,○,-10,+20
4 D:-20,-50,-10,○,+20
5 E:-30,+40,-20,-40,○
6
7 A   0  1  1  1  1
8 B   1  0  1  1  1
9 AND 0  0 1 1 1

G1=SUMIF(B9:F9,1,B1:F1)

これでどうよ

911 :名無しさん@そうだ選挙にいこう:2008/11/09(日) 20:55:28
配列数式を使う場合は、こうかな

  A  B  C  D  E  F
1 A ○ +30 +20 +10 -10
2 B +40 ○ +10 +40 -30
3 C +10 -20 ○ -10 +20
4 D -20 -50 -10 ○ +20
5 E -30 +40 -20 -40 ○

{=SUM(IF(ISERROR(B1:F1-B2:F2),0,B1:F1))}

912 :名無しさん@そうだ選挙にいこう:2008/11/09(日) 21:03:04
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 少しだけ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 タグ エクセル テキスト形式orCSV

HTMLタグを含むセルがあります。これをテキスト形式で書き出すと
そのセルの最初と最後に「"」、タグの属性にある「"」が二つに増やされます。
これを普通に、書いている通りに出力させるにはどうすればよいでしょうか。
ググった結果http://pc11.2ch.net/test/read.cgi/hp/1021096525/1-28
ここで「書き出したらダブルクォーテーションが大量発生してウボァ」みたいな
ことを書いている人がいますが、解決法は示されていません。
(やってることも似たようなもの。ウェブ用データベースのデータファイルを
サーバー上で登録作業を行わずに一括処理するのにエクセルで手入力作成して
いる)

913 :名無しさん@そうだ選挙にいこう:2008/11/09(日) 21:13:35
>>912
(1)シート全体を選択してフォントを「MSゴシック」にする
(2)シート上部の列名が書いてあるところのAとBの境界線をダブルクリックして全体の幅を合わせる
(3)名前を付けて保存→ファイルの種類をテキスト(スペース区切り)(*.prn)にする

914 :912:2008/11/09(日) 21:41:45
>>913
>書いている通りに出力させるにはどうすればよいでしょうか
「書いている通り」の意味が違います。
<a href="http://www.yahoo.co.jp">Yahoo!Japan</a>という文字列を
<a href=""http://www.yahoo.co.jp"">Yahoo!Japan</a>ではなく
<a href="http://www.yahoo.co.jp">Yahoo!Japan</a>と出力させたいんです。

モデルデータ以下つけますので、以下2行をコピペしてスペース区切りでエクセルに貼って
テキスト形式で保存してみてください。

1 ななしさん 2009/11/09 やっほぅ やっほうは<a href="http://www.yahoo.co.jp">ここだよ</a>
2 ごんべさん 2009/11/09 テスト 一発目だよん

915 :お願いします。:2008/11/09(日) 21:47:05
excelで作った図表を画像として他のソフトに貼り付けたりできないものでしょうか?
もし方法があったら教えてください。

916 :名無しさん@そうだ選挙にいこう:2008/11/09(日) 21:58:05
コピー&ペースト

917 :名無しさん@そうだ選挙にいこう:2008/11/09(日) 22:01:15
>>914
つべこべ言わず913の通りにやってみろ

918 :名無しさん@そうだ選挙にいこう:2008/11/09(日) 22:03:15
>>915
スクショ
さもなくば画像化プリンター
ttp://gigazine.net/index.php?/news/comments/20071107_virtual_image_printer_driver/

919 :名無しさん@そうだ選挙にいこう:2008/11/09(日) 22:04:12
>>914
ここ重要

> (3)名前を付けて保存→ファイルの種類をテキスト(スペース区切り)(*.prn)にする

                               ^^^^^^^^^^^^^^^^^^^^^^         

920 :914:2008/11/09(日) 22:25:37
>>917、919
だからやってみて、それじゃダメだって言ってます・・・
ダブルクォーテーションは確かに取れますが、その形式は結局
「画面通りにする」というだけですよね。
>>914に書いたような単純なデータならともかく、
セルに書かれているデータ量にあわせた”セルの幅”では編集不可能です。

AからKまでセル使ってて、1つのセルのデータ量が半角で1000超えます。
小さいセルで作業できなきゃ意味ないです・・・。

921 :名無しさん@そうだ選挙にいこう:2008/11/09(日) 22:25:50
グラフの接線を求めるときはどうすればよいのですか?

922 :名無しさん@そうだ選挙にいこう:2008/11/09(日) 22:30:31
>>920
Excelからファイルに書き出さずに、テキストエディタにコピペしてそっちからセーブしろ

923 :名無しさん@そうだ選挙にいこう:2008/11/09(日) 22:31:40
>>920 
よくわからんが ""を"に替えるだけなら置換すればよいのでは

924 :名無しさん@そうだ選挙にいこう:2008/11/09(日) 22:32:17
>>911
{=SUM(IF(ISERROR(B1:F1-B2:F2),0,B1:F1))} は
何を意味してるんですか?

925 :名無しさん@そうだ選挙にいこう:2008/11/09(日) 22:34:48
>>922
うーん、やはりその手にするしかないか・・・そうします。
せっかくファイル書きだし&UTFコード化マクロ組んだのに
たった一つの仕様で死亡だぁ〜
おじゃましました。dでした。

926 :名無しさん@そうだ選挙にいこう:2008/11/09(日) 22:39:04
>>925
マクロができるんならテキストファイルの保存くらい自分でできそうなもんだけど…
あと1行が何千桁もあるHTMLってなんか嫌だな…

927 :名無しさん@そうだ選挙にいこう:2008/11/09(日) 22:43:30
>>924
まず1行目のデータから2行目を引く計算をする。どちらか片方が○印だと計算ができないからエラーになる。
引き算がエラーにならなかった列の数値だけを合計する。そういう式。

928 :名無しさん@そうだ選挙にいこう:2008/11/09(日) 22:52:42
>>927
実際にやってみたら0になるんですけど、
どういうことですか?

929 :名無しさん@そうだ選挙にいこう:2008/11/09(日) 22:55:30
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 いいえ
【5 検索キーワード     】  文字検索

A列の各行にデータの一覧があり(石鹸水 洗剤 半紙 頭痛薬 )
B列の各行に検索したい文字( 石鹸 薬 木 )があって
B列中の文字がA列中に存在(部分一致でもいい)した場合
B列の一致した文字のセルの右脇(C列)に
*でもその文字でもいいので表示させたいのですが

例えば
この場合石鹸と薬はA列のデータ一覧に一致する物があったので
C列に何らかの形でその結果を表示させたいのです
どうすればいいのでしょうか?

930 :名無しさん@そうだ選挙にいこう:2008/11/09(日) 23:05:48
>>928
データがちゃんと入っていないか、配列数式じゃなくて普通の数式になってるか

931 :921:2008/11/09(日) 23:07:38
>>921お願いします><

932 :名無しさん@そうだ選挙にいこう:2008/11/09(日) 23:08:59
>>930
配列数式にするにはどうすればいいんですか?

933 :名無しさん@そうだ選挙にいこう:2008/11/09(日) 23:18:48
>>929
データがこんな風に入っていたとするとC列に入れる式は =IF(COUNTIF(A:A,"*"&B1&"*")>0,"*","")
これをC1に入れてあとはオートフィル

    A    B 
1 石鹸水 石鹸
2 洗剤   薬
3 半紙   木
4 頭痛薬

934 :名無しさん@そうだ選挙にいこう:2008/11/09(日) 23:23:06
>>932 excelを開いて[F1]を押し、配列数式を検索してみろ

935 :名無しさん@そうだ選挙にいこう:2008/11/09(日) 23:41:32
>>933
ありがとうございます 解決しました!
もしよろしかったらこの式の意味を教えてもらえませんか?
初心者なのでIFにCOUNTIFを重ねて結果がO以上なら*を返す
程度しかわかりません

936 :名無しさん@そうだ選挙にいこう:2008/11/10(月) 00:08:54
>>935
COUNTIFを使ってデータの検索をしている。見つからなければ0、見つかったら1以上の数字が何か入る。
外側のIFは * を表示するためにある。
結果が *印じゃなくて数字でもなんでも区別できればいいんならIFは必要ない。
書式で0だけを見えなくすることもできるしね。

937 :名無しさん@そうだ選挙にいこう:2008/11/10(月) 00:26:00
みなさんありがとうございました。

追加質問です

また麻雀の成績で
A:○,2,1,2,3
B:1,○,2,1,4
C:2,3,○,3,1
D:3,4,3,○,2
E:4,1,4,4,○

この時にAがBのいる時に1位を何回とったかを
表示する方法を教えてください

938 :名無しさん@そうだ選挙にいこう:2008/11/10(月) 00:31:35
>>937
ときどき自分の頭つかうと便利だよ

>>910のSUMIFをCOUNTIFに替えてみるとか

939 :名無しさん@そうだ選挙にいこう:2008/11/10(月) 00:46:18
>>938
すいません・・・

{=COUNT(IF(iseror(C19:C1000-E19:E1000),C19:C1000,1))}
これでやっても出来ないんですけど、
アドバイスお願いします

940 :名無しさん@そうだ選挙にいこう:2008/11/10(月) 00:53:10
それは>>910の式じゃないぞ 頭だけじゃなく眼も悪いのか

941 :名無しさん@そうだ選挙にいこう:2008/11/10(月) 00:54:16
  A  B  C  D  E  F
1 A ○  2  1   2  3
2 B 1  ○  2  1  4
3 C 2  3  ○  3  1
4 D 3  4  3  ○  2
5 E 4  1  4  4  ○

AがBのいる時に1位を何回とったかを出す時
{=COUNT(IF(iseror(b1:f1-b2:f2),b1:f1,1))}

942 :名無しさん@そうだ選挙にいこう:2008/11/10(月) 00:55:56
>>940
すいません
配列数式を使うとどうすればいいですか?

943 :名無しさん@そうだ選挙にいこう:2008/11/10(月) 01:01:41
>>939
× iseror
○ ISERROR

944 :名無しさん@そうだ選挙にいこう:2008/11/10(月) 01:13:31
>>937
1位をとった回数
{=SUM(IF(B1:F1=1,IF(B2:F2<>"○",1,0),0))}

もうちょっと簡単にできそうなんだけどなあ...

945 :名無しさん@そうだ選挙にいこう:2008/11/10(月) 01:24:29
>>943
変えても出来ないんですよねー・・・

946 :名無しさん@そうだ選挙にいこう:2008/11/10(月) 01:37:28
このサイトいいよ!
最新ビジネスソフトが激安でした
「中古PCソフト」で検索して
中古PCソフトっていうところです
後払いで安心して買えました

947 :名無しさん@そうだ選挙にいこう:2008/11/10(月) 02:03:11
>>937
を教えてください

948 :名無しさん@そうだ選挙にいこう:2008/11/10(月) 02:04:49
>>947
>>944

949 :名無しさん@そうだ選挙にいこう:2008/11/10(月) 02:19:08
>>948
意味がわからないんですけど・・

950 :名無しさん@そうだ選挙にいこう:2008/11/10(月) 02:48:36
>>912
ttp://okwave.jp/qa335299.html

951 :名無しさん@そうだ選挙にいこう:2008/11/10(月) 06:45:08
いま表を作っているのですが、
横長い形になってしまって、
一番左にある項目がスクロールしないと確認できなくなってしまいました。
一番左にある項目を常にエクセル上に表示されるようにしたいんですが、
どうやればいいのでしょうか?


952 :名無しさん@そうだ選挙にいこう:2008/11/10(月) 08:48:37
>>949
944は「1行目が1」「2行目が○以外」という2つの条件に合うデータがいくつかあるか出す数式
これで目的の結果はちゃんと出ているはず

953 :名無しさん@そうだ選挙にいこう:2008/11/10(月) 09:33:44
>>944
{=SUM((B1:F1=1)*(B2:F2<>"○"))}
でいいんでない?

954 :名無しさん@そうだ選挙にいこう:2008/11/10(月) 12:35:20
>>951
「ウィンドウ枠の固定」を使えばよい。
まず常に表示しておきたい列の右隣かつ最上行のセルを選択
(※選択したセルの位置で固定表示される行および列が決まることに注意)、
Ecel2003以前・・ツールバーの「ウィンドウ」→「ウィンドウ枠の固定」
Ecel2007・・・・「表示」タブ→「ウィンドウ枠の固定」→「ウィンドウ枠の固定」
でOK。


955 :名無しさん@そうだ選挙にいこう:2008/11/10(月) 19:30:51
EXCEL2002;VBA使用せずの条件で、
データ欠落部を飛ばして折れ線グラフを描く方法を教えて下さい。
(データが欠落していない別データ系列と一緒に表示)


2000年〜2007年の売上データと
2000年〜2003年と2005年〜2007年の仕入データ(2004年分だけ欠落)
がある時、
仕入れグラフを2000年〜2003年の折れ線と2005年〜2007年の折れ線で
表示し(2003年〜2005年の部分が断線している形で)、売上グラフを
2000年〜2007年の連続の折れ線で表示する(同じグラフ上に)。

よろしくお願いします。



956 :名無しさん@そうだ選挙にいこう:2008/11/10(月) 21:09:03
>>955
↓これを読んでみて。
http://www.relief.jp/itnote/archives/000748.php


957 :名無しさん@そうだ選挙にいこう:2008/11/11(火) 00:08:14
Excelのプログラムをコンピュータから完全に削除する方法を教えてください

958 :名無しさん@そうだ選挙にいこう:2008/11/11(火) 00:16:59
>>957
完全に消すのはかなり難しいよ。手間のかからない方法だと色んなところに残骸が残るから。
誰にでも出来そうなのは、HDDを物理フォーマットしてWindowsをクリーンインストールかな。

959 :名無しさん@そうだ選挙にいこう:2008/11/11(火) 01:24:06
>>958
なるほど。
ありがとうございました。

960 :名無しさん@そうだ選挙にいこう:2008/11/11(火) 12:07:29
関数でちょっと困っているのですが
長い文字列があって
任意の文字が何番目にあるのか探す時は
FIND("任意の文字",文字列)
で探せるのはわかるのですが
任意の文字以外が何番目にあるかを調べたい時はどうすればいいのでしょう

任意の文字を全て取り除いてLENで長さを測って・・・
みたいな方法しかありませんか?

たとえば
1235674835A638B0CD26
という文字列で数字以外の文字が何番目に出てくるか等です
もちろん必ずしもAとは限りませんし文字数ももっと膨大なこともあります

961 :名無しさん@そうだ選挙にいこう:2008/11/11(火) 12:30:42
>>960
既出
646以降から嫁
「数字以外の文字」とするのは面倒かも知れんが
応用すればできる

962 :名無しさん@そうだ選挙にいこう:2008/11/11(火) 15:33:57
>>960
発想がおかしいと思う

963 :名無しさん@そうだ選挙にいこう:2008/11/11(火) 16:20:30
質問です。
2色の白黒印刷をしたいのですが、Excelで印刷すると色によってグレーになってしまうのは仕様ですか?

964 :名無しさん@そうだ選挙にいこう:2008/11/11(火) 17:33:16
>>963
Excel2003ならページ設定→シート→白黒印刷で2値にならないかな?

965 :963:2008/11/11(火) 19:06:29
>>964
すいませんExcel2007なのですが、同じ項目をチェックしても印刷プレビューと実際の印刷でグレーになります。

966 :955:2008/11/11(火) 19:48:29
>>956
レスありがとうございます。

967 :名無しさん@そうだ選挙にいこう:2008/11/11(火) 22:11:09
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】特定 個数

下記の様な文字列の中から最初の1文字目が(1)で始まる文字列の個数だけを数える方法を数える方法を教えて下さい。
文字列は200行ぐらいあり、全てハイフンをはさんで一桁です。
countifにleftを組み合わせてもうまくいかず困ってます。

A
1 1-6
2 2-1
3 3-6
4 1-3
5 2-6
6 1-5



968 :名無しさん@そうだ選挙にいこう:2008/11/11(火) 22:23:49
>>967
=COUNTIF(A1:A6,"1-*")
でいいんじゃないかと

969 :名無しさん@そうだ選挙にいこう:2008/11/11(火) 22:28:30
>>968
ありがとうございます。
こんなに簡単にできるなんて…
感謝します。

970 :名無しさん@そうだ選挙にいこう:2008/11/11(火) 22:30:09
>>968
ありがとうございます。
感謝します。

971 :名無しさん@そうだ選挙にいこう:2008/11/12(水) 06:59:08
【1 OSの種類         .】 Windows2000
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 excel マクロ 終了処理

自動処理マクロを作りたいと思います。
処理終了時にブックを自動で閉じるマクロで、その時に他のブックが開いてなければ
excel自体を終了させたいのですがどうすればいいのでしょうか

972 :名無しさん@そうだ選挙にいこう:2008/11/12(水) 08:55:56
>>971
普通に数えると「PERSONAL.XLS」みたいなブックまで数えるから
非表示じゃないブックの数を数えて判定すればいいんじゃ?
単純に「PERSONAL.XLS」だけ除くのもいいかもしれないけどw

973 :名無しさん@そうだ選挙にいこう:2008/11/12(水) 09:38:31
質問です
例えばA1に何か数字を入れた時A2にその日の日付が表示されるようにするには式をどうすればいいですか??
トゥデイ関数とイフ関数を使って
A2に IF(A1、TODAY())
にすると日がたつとA2の日が自動更新されてしまいます
A1に新しく数字を入れないと更新されないようにしたいのです

分かる神はおらぬか

974 :名無しさん@そうだ選挙にいこう:2008/11/12(水) 09:45:46
式では _

975 :名無しさん@そうだ選挙にいこう:2008/11/12(水) 10:05:02
>>974
ではエクセルでは無理と(*_*)

くやしいですっっ(>_<)

976 :名無しさん@そうだ選挙にいこう:2008/11/12(水) 10:14:32
125 721 522 111 387

225 312 176 421 412

このような数字があるとして、各行ごとに、最大の数値のセルだけ色を付ける方法はありますか?
上の例だと721と421の色が変わるといった具合です

977 :名無しさん@そうだ選挙にいこう:2008/11/12(水) 10:38:59
>>975
>>974が言いたいのはVBA使えって意味だ
悔しがることじゃないだろw

>>976
条件付書式でその行のMaxと比較して同じだったら色を付ける
条件付書式が満杯(最大3つ)だったらVBA使う

978 :名無しさん@そうだ選挙にいこう:2008/11/12(水) 10:53:50
質問お答え願いたい!
十万をも超える大量のセルに計算式が入っておるなれど
引数に別シートのデータ貼り付け用から呼び込んでいるもの等ありて
貼り付けるデータの大きさ如何によってはエラーが表示さるる

ここでこの目障りなエラーを見えなくさせたいと思いて(見えないだけで良い)
一、全ての式を=IF(ISERROR(計算式),"",計算式)として空白表示にしてしまう
二、計算式はそのままに条件つき書式にてエラー時には文字色を白くし見えなくする
の二つを考えたのだが

コンピューターへの負担が少なくて済むのはどちらであろうか?

マクロ?そんなものは知らぬわからぬ使えぬ!

979 :名無しさん@そうだ選挙にいこう:2008/11/12(水) 10:59:09
>>977
このスレ来てVBAなんて言葉初めて知りました

自分はエクセル普通使える方だと思ってたのに

やっぱくやしいですっっ(>_<)

980 :名無しさん@そうだ選挙にいこう:2008/11/12(水) 11:26:25
>>978
参、別シートで当該セルの式を=IF(ISERROR(元のシート!A1),"",元のシート!A1)などとして空白表示にしてしまう

一なら1つのセルで「計算式」を2回、2ならエラーだったら1回違ったら2回やるので大して変わらないと推測
上の案なら確実に1回なのでましかと・・・

981 :976:2008/11/12(水) 11:49:03
>>977
ttp://www2.uploda.org/uporg1779814.jpg
こうでしょうか? 
・・・しかしなぜか三箇所に色が付いてしまって・・・どこが違うのでしょうか
(エクセル勉強してまだ半日の初心者なのでVBAとかはキツいです)

982 :名無しさん@そうだ選挙にいこう:2008/11/12(水) 12:09:46
>>977
C27:D27

$C27:$D27
設定したい行を全て選択してからこれを設定すればまとめてできる
「相対参照」や「絶対参照」で検索して勉強しとくといいと思う

983 :977:2008/11/12(水) 12:18:46
>>982
有難うございました、
おかげさまでうまく結果が出せました

984 :名無しさん@そうだ選挙にいこう:2008/11/12(水) 12:31:24
>>978
コピーして、
編集→形式を選択して貼り付け(値)で別シートに貼り付けて、
編集→ジャンプ→セル選択(定数、エラー値)で選択して、
Deleteキーを押す

985 :名無しさん@そうだ選挙にいこう:2008/11/12(水) 12:35:39
根本的に、そんなにエラーの出まくるシートの設計が悪い

986 :名無しさん@そうだ選挙にいこう:2008/11/12(水) 12:51:31
>>984
データが変わる度にそれやることになると978は涙目かも知れんなw
セル選択って選択できる個数は制限無いのかな・・・
こんなことを懸念してしまった

>>985
それを言ったらお終いだ

987 :名無しさん@そうだ選挙にいこう:2008/11/12(水) 13:23:20
別シートにエラー以外の値をコピーするマクロを作ってボタン登録しとけばいいじゃん

988 :978:2008/11/12(水) 13:45:56
あいすまぬ、拙者が力及ばぬゆえにご足労をかけてしまい
大変申し訳なく思う

>>980
その参はつまり、貼り付けシートと計算結果シートの間に
もう一枚のシートをかませ、
そこでまずは一旦エラーを空白に変えるということでござるか?
その場合、最初に空白を貼り付けたために出るエラーは結局空白のままゆえ
結果として同じエラーになるのではなかろうか・・・

あと
> 二ならエラーだったら1回違ったら2回
の「違ったら2回」がよくわからぬ・・・
エラーであるか否かに関わらず必ず判定を行い、(1回)
エラーの時だけ文字を白に実行するのだと思ったのだが

>>984-986
これは右も左もわからぬ赤子でも使えるようにと頭領が作り給うたもので
ただコピーし貼り付けるだけで毎月の成績の集約が瞬時にできるとのうたい文句であった
そのためかゆとり多く余分に計算式を入れており
貼り付ける量が仮に60000でも98000でも大丈夫なようにしてある
あまり詳しくはないが左端縦列から該当する名前を拾い
そこから上下左右いくつ動いたかを指定してデータを読み取る?ようだ
なお門外不出持ち出し禁止なためこれ以上は言えぬ!

989 :980:2008/11/12(水) 14:12:52
参は計算結果シートの間ではなく後にエラーの箇所を空白にしたシートを作ればいいんじゃないか?
って言う意味

>二ならエラーだったら1回違ったら2回
これは
=IF(ISERROR(計算式),"",計算式)
1.まずエラーかどうか見るために「計算式」を計算する
2.エラーでなければさらにIFの結果を返すために「計算式」を計算する
 エラーなら計算などせずに空白を返す
つまりエラーでなければ「計算式」は2回動く
という動作をしてると思ってるって意味だ
(検証等をしたわけではない)

ところで誰か次スレよろ

990 :名無しさん@そうだ選挙にいこう:2008/11/12(水) 14:53:52
>>830さんのも使えましたが、折角なので自分で考えた奴も完成させました。入れ子が予想つかないとも言われましたので・・w
表のスタイルも少し変わってます。>>829の中のA列〜はB列〜、K列に色づけ〜はその行に色づけ、に変わってます
マクロの中身はB4(B1-B3はタイトル)から1セルずつ下に向かって調べて行き、同じものがあればdo loopに突入、そこで同じものだけ数えるという形です
別に数える必要はありませんでしたね!
Private Sub CommandButton2_Click()

Dim gyo As Long'表全体の最終行
Dim b As Long'個々の終わりの行
Dim i As Long'個々のループ変数
Dim n As Long'色分けフラグ
gyo = Range("B65535").End(xlUp).Row
n = 1

For i = 1 To gyo
Cells(i, 2).Value = StrConv(Cells(i, 2).Value, vbNarrow)
Next

For i = 4 To gyo
If Cells(i, 2).Value = Cells(i + 1, 2).Value Then
b = i
Do
b = b + 1
Loop Until Cells(b, 2).Value <> Cells(b + 1, 2).Value


991 :名無しさん@そうだ選挙にいこう:2008/11/12(水) 14:54:51

If n = 1 Then
Rows(i & ":" & b).Interior.ColorIndex = 40
Else
Rows(i & ":" & b).Interior.ColorIndex = 34
End If

n = n * -1
i = b
End If
Next

992 :名無しさん@そうだ選挙にいこう:2008/11/12(水) 14:56:39
スレ立て 誰か 頼む
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総合相談所 74
http://pc11.2ch.net/test/read.cgi/bsoft/1223462844/

993 :名無しさん@そうだ選挙にいこう:2008/11/12(水) 15:22:07
ほい
次スレ
Excel総合相談所 75
http://pc11.2ch.net/test/read.cgi/bsoft/1226470880/


994 :名無しさん@そうだ選挙にいこう:2008/11/12(水) 15:28:43
最近なんか時間の経つのが速い。
このスレが立ってから2日ぐらいしかたってないかと思ってた。え?もう1000いったの?って感じ。

995 :名無しさん@そうだ選挙にいこう:2008/11/12(水) 16:18:24
先走って思わず次スレの2をgetしてしまった・・・orz
テンプレ全部貼られるの待つべきだったな

996 :名無しさん@そうだ選挙にいこう:2008/11/12(水) 16:30:11
今からテンプレ貼るぞ

997 :名無しさん@そうだ選挙にいこう:2008/11/12(水) 16:32:09
できあがってるじゃないか。

998 :名無しさん@そうだ選挙にいこう:2008/11/12(水) 16:32:48
はい、次の方は次スレでどうぞ。。

999 :名無しさん@そうだ選挙にいこう:2008/11/12(水) 16:32:56
うめ


1000 :名無しさん@そうだ選挙にいこう:2008/11/12(水) 16:33:07
おしまい


1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

366 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)