• ベストアンサー

Excelで文入力の登録、短縮機能は?

糖尿病コントロールのため、Excelで糖尿病食の献立を毎日入力管理する表を作っていますが、同じ食品名やカロリーを日替わり毎に何度も入力する必要があります。コピー、貼り付けをすればよいのですが、項目を探すのが面倒です、各食品名の頭に整理番号を打っていますが、番号を入力すれば項目が表示できる登録、短縮機能のような事ができる方法があれば教えて下さい。

質問者が選んだベストアンサー

  • ベストアンサー
  • shinkami
  • ベストアンサー率43% (179/411)
回答No.2

整理番号を使わなくともよいと思います 方法は2通りあります 第一の方法 入力するセル上で右クリック「リストから選択」を選びますとそれまでに入力した一覧が重複を排除してリストされます。 (ごはん、ご飯、御飯は別物として表示されます) 第二の方法 事前準備として、食品の一覧を登録しておきます 入力するセルをクリックして、メニューバー上のデータ→入力規則→設定タブで入力値の種類をリストにして、元の値を範囲指定(絶対アドレスで)で設定します。 これで入力時セルの右端の▼でリスト表示されます カロリーが食品毎に特定されるなら食品の一覧に単位当りカロリーも登録しておき「Vlookup関数」を活用すれば入力効率が良くなる?

guttiotaka
質問者

お礼

回答を頂いていながら、御礼が遅くなっていまして申し訳有りません。土日しかパソコンに向かう時間がなくて、今日も(糖尿病食管理表)完成に頑張っています。ご回答で短縮機能が出来るという事が分り、完成に意欲が増しました。遅くなりましたが、厚くお礼申し上げます。未だ、この段階にはいっていませんが、現在、食品のカロリー、栄養素の参考書等で研究しながらの入力中で、自分にあった1日の献立、運動等の指示書がパソコンを使って簡単に出来るというのが目的です。今のところは毎日食べたものを記録し、朝、空腹時血糖を計っていますが手書きは大変です。ちなみに、今までの食材を交換したり、運動したりと工夫して一時は空腹時血糖300mg/dl ヘモグロビンA1c9.8と即入院状態のところ、現在のところ120mg~160mg/dl ヘモグロビンA1c6.2に改善していますが、まだまだです。これが完成して毎日便利に活用でき、食養生も無理なく継続できれば更に良い結果が出るかなと思っています。本当に有難うございました、まだまだ、疑問のところが出てくると思いますが、今後もご教授宜しくお願いいたします。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

noname#140971
noname#140971
回答No.1

エクセルは操作したことのない門外漢ですので、次のようなアイデアしか思いつきませんでした。 そういうことで参考程度にされて下さい。 foods.txt F0001:AAA F0002:BBB F0003:CCC それは、このようなテキストファイルを利用する方法です。 先ず、メモ帳でF0001~F9999の整理番号を付けてコロン(:)に続けて食品名を入力して下さい。 次に、それを保存して下さい。 <ブック起動時に読み込む仕掛け> 次のコードを標準モジュールに登録して下さい。 Public strFoods() As String Public Sub Auto_Open() On Error GoTo Err_Auto_Open   Dim fso    As Object   Dim strTexts() As String      Set fso = CreateObject("Scripting.FIleSystemObject")   strFoods() = Split(fso.OpenTextFile("C:\Temp\Foods.txt").ReadAll, vbCrLf) Exit_Auto_Open:   Exit Sub Err_Auto_Open:   MsgBox Err.Description & "(Auto_Open)", vbExclamation, " 関数エラーメッセージ"   strFoods() = Split("")   Resume Exit_Auto_Open End Sub Public Function CutStr(ByVal TEXT As String, _             ByVal Separator As String, _             ByVal N As Integer) As String   Dim strDatas() As String      strDatas = Split("" & Separator & TEXT, Separator, , 0)   CutStr = strDatas(N * Abs((N <= UBound(strDatas)))) End Function Public Function LenH(ByVal TEXT As String) As Integer   LenH = LenB(StrConv(TEXT, vbFromUnicode)) End Function <シート入力を翻訳する仕掛け> シートモジュールに次のコードをコピペして下さい。 Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next   Dim I    As Integer   Dim N    As Integer   Dim strValue As String   Dim strKey  As String      strValue = Target.Value   strKey = CutStr(strValue, ":", 1)   If UCase(Left$(strKey, 1)) = "F" And (LenH(strKey) = 5 And Len(strKey) = 5) Then     N = UBound(strFoods())     For I = 0 To N       If StrComp(strKey, Left$(strFoods(I), 5), vbTextCompare) = 0 Then         Target.Value = CutStr(strFoods(I), ":", 2)         Exit For       End If     Next I   End If End Sub 見たら判りますが、先頭がFで長さ5文字が入力されると翻訳ルーチンが働きます。 登録データに合致するまで翻訳を試みます。 ですから、 F0001:AAA F0003:CCC F0004:CCC と非連番であっても構いません。 ※なお、食品名列の隣にカロリーを表示するように改造することも簡単だと思います。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 糖尿病食の献立作成について

    糖尿病食の献立作成についての質問です。 献立作成時、気をつけるのはカロリーだけで 良いのでしょうか? 目標カロリー内で収まるのだったら ケーキとか甘いものを加えても大丈夫なのでしょうか? 教えてください。

  • エクセル入力支援機能について。

    皆様宜しくお願い致します。 私は小売店を営んでおり、現在エクセル2010にて受注表を作成しています。 お客様からご注文をいただいた記録を残すものです。 (1)受注日 (2)顧客名 (3)受注内容 ~といった感じです。 受注表には「顧客名」を入力する項目があります。 希望は、あらかじめ別シートにリスト化されている顧客名を、受注表の顧客名に該当の一文字でも入力をすると自動的に候補が抽出されそのまま選択して入力がすることです。 理由は数名のスタッフが受注表にて記録を残しますが、顧客名が若干異なったり、半角・全角の違いがあったりと、バラバラなのです。 受注表の「顧客名」からフィルタ機能で集計等をしたいのですが顧客名がバラバらの為、うまくフィルタリングができません。 現在エクセルの「sheet1」に台帳を作成しており、「sheet2」には顧客名のリストが作成してあります。 例):OKweb株式会社       ↓ 該当のセルに「web」と入力すると、       ↓ 「OKweb株式会社」 と入力候補が表示するような。 もしくは、 「OK」と入力すると、 「OKweb株式会社」の表示でも構いません。 エクセルにプルダウンメニュー等使えそうな機能があるのは知っていますが、 顧客数が数百社と多い為、探し出すのが大変です。 分かりづらくて申し訳ございません。 何か良い方法がありましたらご指導のほど宜しくお願いいたします。

  • エクセルの自動入力を

    今、手元にエクセルで作った一覧表が有ります A列には「入荷日」 B列には「製品番号」 C列には「製品名」 D列には「大きさ(重量)」 E列には「担当者」 が入っていて、全部で約25000行ほどの一覧表です。 入荷日の欄<A列>には =TODAY() の関数式が入っており、自動で入力されます。 (最後のコピー→テキストで貼付けをする) 製品番号,製品名,大きさ,担当者は関連しているため 製品番号を入力すれば他が自動で入る仕組みになっていました。 例えば製品名の所には =VLOOKUP(B25633,B:E,2,FALSE) といった感じで、B25633のセルの製品番号から製品名を自動記入 していました。 しかし最近になり担当者が変わってしまったのですが、この関数では いまだに過去の一番古い担当者を自動入力してしまいます。 上から検索が行われているためだと思うのですが、 一番最近のデータ(画面で言う下)から検索を行い 自動入力をする方法って、他には無いんでしょうかお願いします。

  • Excelで入力した項目をMySQLに登録する

    エクセルにて入力した項目をMySQLに登録したいのですが、 コードが分かりません。 VBでできるようなのですが、初心者な為、調べてもよく 分からなかったのでご質問させて頂きます。   A1   A2 1 性別  男 2 距離  近所 3 年代  20代 4 曜日  日曜日 5 来店日 3日以内 6 時間帯 夜 A1には既にある項目名、A2にはプルダウンで表示させた項目を追加するようにしたいのです。 その為、A2の項目は常に変動します。 また、データ毎にシーケンス番号を割り振りたいと考えております。 また、追加は実行ボタンを押下時に、実行できるようにしたいと考えておりますが、 実行ボタンは『開発 ⇒ 挿入 ⇒ フォームコントロール ⇒ ボタン』 で作成して問題ないのでしょうか。 以上、ご教授頂けないでしょうか。

  • Excelでのデータ入力

    今、Excelで商品の集計表を作成しています。セルAに商品番号を入れ、隣のセルBに商品名を入力しているのですが、商品数が多いのでいちいち番号と名前を入力するのが大変です。商品番号を入力すれば、反映して商品名が自動で入る方法はないでしょうか。 教えてください。宜しくお願いします。

  • エクセルでカロリー表を作りたいのですが。

    毎日の健康管理のため、カロリー表を作りたいのですが、前に入力した項目を入れた時にそれに対応したカロリーの数値が出るようにするにはどうしたらいいのでしょうか? 例えば食事の項目(列)に「ごはん」と入力した時にカロリーの列に「180Kcal」と出るようにしたいのですが。。。

  • カロリー計算を簡単にできる方法

    家族が膵臓を患い、これから 脂質とたんぱく質、一日の総摂取カロリーも制限された食生活を 送ることになりました。 他にも、食物繊維や、酸(クエン酸や酢酸系)も制限されており、 糖尿病食よりも、かなり制限が多い生活になりました。 そのため毎日3食ともカロリーだけでなく 脂質やたんぱく質など、 それぞれの成分を計算をしなくてはならないのですが 食品成分表をめくりながらの 計算は、育児と仕事をしながらだと時間がなく 難しさを感じています。 入力すると、カロリーだけでなく、 脂質の分量や、たんぱく質、食物繊維の分量までも 詳しく表示されるようなソフト あるいはネットでの サービスを知っていらっしゃる方がいらっしゃったら ぜひぜひ、教えてください。本当に困っているんです・・・。

  • 特定リストから数値を参照する方法

    どなたがご教授をお願いします。 Excel上でカロリー計算を行いたいのですが、 何度も同じ食品のカロリー値を入力するのは面倒なので、 各品目とそのカロリーを別表に保持しておき、 品目名を入力すると自動的にカロリーを表示させたいのですが、 どのようにすればよいでしょうか? 【表1:カロリーリスト】  パン  300  おにぎり 200  いちご  300 【表2:カロリー入力表  「パン」と入力すると、となりのセル  にそのカロリー値を表示させたいです。 よろしくお願いします。

  • エクセルで入力用の場所に入力したら、入力内容が人ごとに反映される方法

    入力用のシートを1つ用意して、その表の中の項目を入力したら、内容が他のシートに反映される方法ってありますか? 例えば、社員Aの社員番号が001で、 社員番号を入力したら、その人のシートに 次々に情報が入力されていくっていうことはできるのでしょうか?? すごく分かりにくい質問ですみません。

  • 《エクセル》で、入力用のメニュー画面を作りたい

    シートとは別に、入力用のメニューを作るには、どうしたらよいでしょうか?コントロールツールボックスのテキストでよいのでしょうか? 項目は、15項目ほどです。(1名分) 15項目入力後に、sheet1に5項目、sheet2に5項目、sheet3に5項目を指定したセルに飛ばしたいです。 またsheet4には、15項目を1行に飛ばしたい。(二人目からは、次の行に…入力したものが、どんどん保存される。) メニュー画面で名前等を入力すると、入力済みのデータが表示されて、修正が出来るようにしたい。 イメージがつかみにくいとは思いますが、どうか力を貸して下さい。