Язык программирования VBA

Специфика расчета кредитных и депозитных операций с использованием VBA. Процедура вычисления кредитов дифференцированным методом. Просчет депозитов по простому и сложному проценту. Схема алгоритма выполнения программы, ее листинг и анализ интерфейса.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 09.04.2012
Размер файла 2,4 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

  • Содержание
  • Введение 2
  • 1. Коммерческий банк и его структура 3
    • 1.1 Функции коммерческого банка 4
    • 1.2 Основная роль коммерческого банка 5
  • 2. Основные виды банковских операций 7
    • 2.1 Кредитные операции 7
    • 2.2 Депозитные операции 10
  • 3. Описание среды программирования 13
    • 3.1 Язык программирования VBA 13
  • 4. Постановка задачи 15
  • 5. Расчет кредитных и депозитных операций с использованием VBA 16
    • 5.1 Схема алгоритма выполнения программы 16
      • 5.1.1 Процедура создания рабочей книги 17
      • 5.1.2 Процедура сохранения файла 18
      • 5.1.3 Процедура выхода из программы 19
      • 5.1.4 Процедура расчета кредитов 20
      • 5.1.5 Процедура расчета кредитов дифференцированным методом 22
      • 5.1.6 Процедура расчета кредитов аннуитетным методом 23
      • 5.1.7 Процедура расчета депозитов 24
      • 5.1.8 Процедура расчета депозита по простому проценту 26
      • 5.1.9 Процедура расчета депозита по сложному проценту 27
  • Заключение 29
  • Литература 30
  • Приложение 1. Пример выполнения программы 31
  • Приложение 2. Листинг программы 39

Введение

Банки--одно из центральных звеньев системы рыночных структур. Развитие их деятельности - необходимое условие реального создания рыночного механизма. Банки выполняют разнообразные функции и выступают в сложные взаимоотношения между собой и другими субъектами хозяйственной жизни. Процесс экономических преобразований начался с реформирования банковской системы. Эта сфера динамично развивается и сегодня.

Сегодня коммерческие банки способны предоставить клиентам до 200 видов банковских продуктов и операций. Такая обширная деятельность банков требует системного подхода к изучению банковского дела.

1. Коммерческий банк и его структура

Коммерческие банки - крупные негосударственные кредитные учреждения, осуществляющие универсальные банковские операции для предприятий, организаций, граждан (расчетные, платежные операции, привлечение вкладов, предоставление ссуд, а также операции на рынке ценных бумаг). Денежные средства для проведения операций такие банки формируют главным образом за счет сбережений, привлеченных в виде вкладов, межбанковских кредитов, выпуска собственных акций и облигаций.

Коммерческим банком является учреждение, осуществляющее на договорных условиях кредитно-расчетное и иное банковское обслуживание юридических лиц и граждан путем совершения операций и оказания услуг. Коммерческие банки действуют на основании лицензий на совершение банковских операций, получаемых от центрального банка.

Коммерческие банки различаются:

1. По принадлежности уставного капитала и способу его формирования и могут создаваться и существовать в форме акционерных обществ или обществ с ограниченной ответственностью с участием иностранного капитала, иностранных банков. Закон не исключает и другие способы формирования уставного капитала коммерческого банка.

2. По видам совершаемых операций коммерческие банки делятся на универсальные и региональные банки.

3. У многих коммерческих банков ярко выражена отраслевая ориентация.

Структура коммерческого банка

Коммерческий банк для обеспечения своей деятельности должен располагать определенной суммой денежных средств. Ресурсы коммерческого банка представляют собой совокупность собственных, привлеченных и заемных средств. Основным источником ресурсов коммерческого банка являются привлеченные ресурсы, которые составляют около 85% всех банковских ресурсов.

1.1 Функции коммерческого банка

Одной из важных функций коммерческого банка является посредничество в кредите, которое они осуществляют путем перераспределения денежных средств, временно высвобождающихся в процессе кругооборота фондов предприятий и денежных доходов частных лиц. Особенность посреднической функции коммерческих банков состоит в том, что главным критерием перераспределения ресурсов выступает прибыльность их использования заемщиком. Перераспределение ресурсов осуществляется по горизонтали хозяйственных связей от кредитора к заемщику, при посредстве банков без участия промежуточных звеньев в лице вышестоящих банковских структур, на условиях платности и возвратности. Плата за отданные и полученные взаймы средства формируется под влиянием спроса и предложения заемных средств.

Вторая важнейшая функция коммерческих банков - стимулирование накоплений в хозяйстве. Коммерческие банки, выступая на финансовом рынке со спросом на кредитные ресурсы, должны не только максимально мобилизовать имеющиеся в хозяйстве сбережения, но и формировать достаточно эффективные стимулы к накоплению средств. Стимулы к накоплению и сбережению денежных средств формируются на основе гибкой депозитной политики коммерческих банков. Помимо высоких процентов, выплачиваемых по вкладам, кредиторам банка необходимы высокие гарантии надежности помещения накопленных ресурсов в банк. Созданию гарантий служит формирование фонда страхования активов банковских учреждений, депозитов в коммерческих банках.

Третья функция банков - посредничество в платежах между отдельными самостоятельными субъектами.

В связи с формированием фондового рынка получает развитие и такая функция банков, как посредничество в операциях с ценными бумагами. Банки имеют право выступать в качестве инвестиционных институтов, которые могут осуществлять деятельность на рынке ценных бумаг в качестве посредника; инвестиционного консультанта; инвестиционной компании и инвестиционного фонда. Выступая в качестве финансового брокера, банки выполняют посреднические функции при купле-продаже ценных бумаг за счет и по поручению клиента на основании договора комиссии или поручения.

1.2 Основная роль коммерческого банка

Банковская система сегодня - одна из важнейших и неотъемлемых структур рыночной экономики. Развитие банков и товарного производства и обращения исторически шло параллельно и тесно переплеталось. При этом банки, выступая посредниками в перераспределении капиталов, существенно повышают общую эффективность производства.

Коммерческие банки относятся к особой категории деловых предприятий, получивших название финансовых посредников. Они привлекают капиталы, сбережения населения и другие денежные средства, высвобождающиеся в процессе хозяйственной деятельности, и предоставляют их во временное пользование другим экономическим агентам, которые нуждаются в дополнительном капитале.

Банки создают новые требования и обязательства, которые становятся товаром на денежном рынке. Так, принимая вклады клиентов, коммерческий банк создает новое обязательство - депозит, а выдавая ссуду - новое требование к заемщику.

Этот процесс создания новых обязательств составляет сущность финансового посредничества. Эта трансформация позволяет преодолеть сложности прямого контакта сберегателей и заемщиков, возникающие из-за несовпадения предлагаемых и требуемых сумм, их сроков, доходности, и т.д.

2. Основные виды банковских операций

2.1 Кредитные операции

Банковский кредит -- денежная ссуда, выдаваемая банком на определённый срок на условиях возвратности и оплаты кредитного процента.

Банковские кредиты классифицируются по ряду признаков:

а) По сроку погашения:

· онкольные

· краткосрочные

· среднесрочные

· долгосрочные

б) По способу погашения:

· погашаемые одной суммой в конце срока

· погашаемые равными долями через равные промежутки времени

· погашаемые неравными долями через различные промежутки времени

· сложный кредит (с выплатой от 20 до 50 % суммы кредита в конце срока)

· прогрессивный кредит (с прогрессивно нарастающими к концу срока действия кредитного договора выплатами)

· сезонный кредит (кредит для сезонных производств с выплатами только в те месяцы, на которые приходятся максимальные суммы выручки)

в) По способу взимания ссудного процента:

· плата в момент погашения ссуды

· плата равномерными взносами в течение всего срока действия кредитного договора

· оплата в момент выдачи кредита

г) По целевому назначению:

· связанные (целевые) ссуды

· на финансирование производственных затрат, то есть на формирование запасов товарно-материальных ценностей

· финансирование текущих производственных затрат

· финансирование инвестиционных затрат, включая кредиты на лизинговые и т. п. операции (промежуточные)

· потребительские кредиты

· ссуды общего характера (нецелевые, несвязанные)

д) По форме предоставления кредита:

· ссуды в безналичной форме:

· зачисление безналичных денег на соответствующий счет заёмщика, в том числе реструктуризация ранее выданного кредита и предоставление нового;

· кредитование с использованием векселей банка;

· в смешанной форме (сочетание 2-х предыдущих вариантов).

· ссуды в налично-денежной форме (как правило, физическим лицам)

Для классификации кредитов на те или иные группы и виды могут использоваться и другие критерии.

Банковские кредиты подразделяются наактивные и пассивные. В первом случае банк выдает кредит, то есть выступает кредитором, во втором берёт кредит, то есть является заёмщиком. Банк может входить в кредитные отношения (брать или давать кредиты) и с другими банками (иными кредитными организациями), выполняя в зависимости от ситуации активную или пассивную функцию. Такие отношения называются межбанковским кредитованием. Что касается кредитования предприятий, организаций, учреждений и физических лиц (нефинансовый сектор экономики), то кредитные отношения банка с ними имеют другой характер -- он практически всегда является кредитором.

Безусловными принципами банковского кредитования являются:

1. Принцип срочности означает, что кредит даётся на однозначно определённый срок.

2. Принцип возвратности предполагает, что в определённый договором срок вся сумма кредита должна быть возвращена полностью.

3. Принцип платности подразумевает, что за право пользования кредитом заёмщик должен заплатить оговоренную сумму процентов.

4. Принцип подчинения кредитной сделки нормам законодательства и банковским правилам.

5. Принцип неизменности условий кредитования. То есть изменение условий кредитного договора (соглашения) должно производиться в соответствии с правилами, сформулированными в самом кредитном договоре либо в специальном приложении к нему.

Требования к процессу выдачи кредитов

Банк разрабатывает и утверждает внутренние документы, определяющие его кредитную политику, а также учётную политику и подходы к её реализации, а также документы, определяющие процедуры принятия решений о размещении банком денежных средств, распределение функций и полномочий между подразделениями и должностными лицами банка, включающие внутренние правила размещения средств, в том числе правила кредитования клиентов.

Выдача кредита в зависимости от типа клиента может быть осуществлена в следующем порядке:

· юридическим лицам -- в безналичной форме путем зачисления средств на расчётный, текущий или корреспондентский счёт;

· физическим лицам -- в безналичной форме путем зачисления средств на счёт лица в банке либо наличными через кассу банка;

· кредиты в иностранных валютах выдаются юридическим и физическим лицам только в безналичной форме.

Кредит выдаётся на основании распоряжения, надлежащим образом составленного специалистами кредитного подразделения банка и подписанного уполномоченным должностным лицом банка. Банк-кредитор обязан создавать резервы на возможные потери по ссудам (РВПС) от кредитной деятельности.

В установленный в кредитном договоре день (день уплаты процентов и/или погашения основного долга) работник бухгалтерии, ответственный за ведение счёта заёмщика, на основании соответствующего распоряжения, подписанного уполномоченным должностным лицом банка, либо оформляет бухгалтерскими проводками факт уплаты процентов и/или погашения основного долга, либо (при неисполнении или ненадлежащем исполнении клиентом своих обязательств по договору) переносит возникшую задолженность клиента на счета учёта просроченной задолженности.

Задолженность по кредитам, безнадежная и/или признанная нереальной для взыскания, в установленном порядке списывается с баланса банка за счет средств специально формируемых на такой случай резервов, а при недостатке таких средств относится на убытки отчётного года.

2.2 Депозитные операции

Депозит (банковский вклад) -- сумма денег, помещённая вкладчиком в банк на определённый или неопределённый срок. Банк пускает эти деньги в оборот, а в обмен выплачивает вкладчику проценты. Депозит является долгом банка перед вкладчиком, то есть, подлежит возврату.

В периоды нормального развития экономики банковский вклад является одной из наименее выгодных и наименее рискованных форм вложения денег и может служить в качестве минимального ориентира в расчётах.

Депозит до востребования -- депозит без указания срока хранения, который возвращается по первому требованию вкладчика. Обычно по сберегательным вкладам начисляются проценты по ставкам ниже соответствующих для срочных депозитов. Депозитом до востребования могут по соглашению с банком или по законам отдельных государств являться средства на чековом счёте в банке.

Срочный депозит -- депозит под проценты, внесённый на определенный срок и изымаемый полностью по истечении обусловленного срока. Срочные депозиты менее ликвидны, чем сберегательные вклады до востребования, но приносят более высокий процент дохода.

Также возможны различные конструкции вклада: депозит с возможностью пополнения, частичного изъятия. Обычная закономерность: чем больше срок вклада, тем выше его доходность. При размещении крупных сумм рекомендуется разбивать их на несколько депозитов -- в случае необходимости можно будет изъять только часть средств, сохранив доходностьпо остальным, однако при этом банк может предложить меньший доход.

Объектами депозитных операций являются суммы денежных средств, которые субъекты депозитных операций вносят в банк и которые в силу действующего порядка осуществления банковских операций на определенное время сосредотачиваются на счетах в банке.

Исходя из категории вкладчиков, различают следующие виды депозитов:

· Депозиты юридических лиц (предприятий, организаций, других банков);

· Депозиты физических лиц.

· По своему экономическому содержанию депозиты принято подразделять на З группы:

· срочные депозиты (с их разновидностью - депозитными сертификатами);

· депозиты до востребования;

· условные депозиты (договором может быть предусмотрено внесение вкладов на заранее оговоренных условиях их возврата, не противоречащих закону).

В банковской практике наиболее распространены вклады до востребования, т.е. выдача вклада производится по первому требованию вкладчика, и срочный вклад - возврат вклада осуществляется по истечении определенного договором срока.

3. Описание среды программирования:

3.1 Язык программирования VBA

VisualBasicforApplications (VBA) -- немного упрощённая реализация языка программирования VisualBasic, встроенная в линейку продуктов MicrosoftOffice (включая версии для Mac OS), а также во многие другие программные пакеты, такие как AutoCAD, WordPerfect и ESRI ArcGIS. VBA покрывает и расширяет функциональность ранее использовавшихся специализированных макроязыков, таких как WordBasic. Может использоваться для управления приложением (меню, панели инструментов, формы пользователя, диалоговые окна и т.д.). VBA может также использоваться для создания импорта и экспорта различных форматов файлов.

VBA является интерпретируемым языком. Как и следует из его названия, VBA близок к VisualBasic, но может выполняться лишь в рамках приложения, в которое он встроен. Кроме того, он может использоваться для управления одним приложением из другого, с помощью OLE Automation (например, таким образом можно создать документ Word на основе данных из Excel).

VBA функционально богат и чрезвычайно гибок, но имеет ряд ограничений, включая ограниченную поддержку указателей на функции (используются в Windows API). Имеется возможность использовать (но не создавать) библиотеки DLL.

VBA -- транслируемый язык. Это означает, что его команды сначала преобразуются к исполняемой форме. Контейнеры VBA (Access, Excel, Word) могут сохранять оттранслированную программу в скрытой форме в исходном документе (чтобы не требовалась перекомпиляция). Исполнение кода происходит в виртуальной машине (как в языке Java), что зачастую ошибочно называют интерпретацией. Несмотря на его схожесть со многими старыми диалектами BASIC (особенно MS BASIC), VBA не совместим с ними кроме MicrosoftVisualBasic до версии 6 и не совместим с VB.NET.

Чтобы использовать VBA с приложениями (Access, Excel, Word) необходимо использовать соответствующую терминологию и языковые конструкции. Это так называемая «объектная модель приложения». Карта объектной модели является сетевой для Excel, Word. Новичку использование объектной модели может составлять значительную трудность.

Широкое распространение VisualBasicforApplications в сочетании с изначально недостаточным вниманием к вопросам безопасности привело к широкому распространению макровирусов.

Как любой язык программирования макросы VBA могут быть созданы с злым умыслом. Для защиты были введены опции приложения. Пользователь по своему усмотрению может либо исполнять макроопределения VBA или не исполнять.

В будущем Microsoft планирует заменить VBA на VisualStudioToolsforApplications (VSTA) -- инструментарий расширения функциональности приложений, основанный на Microsoft .NET.

4. Постановка задачи

Разработать программу для автоматического расчета кредитных и депозитных операций при помощи VisualBasicforApplications. Программа должна запрашивать у пользователя все входные данныес помощью формы или диалоговых окон, автоматически рассчитывать все выходные данные кредитных и депозитных операций, автоматически строить графики на основе рассчитанных значений на другом листе книги.Пользователь должен иметь возможность сохранить рабочую книгу под удобным для него именем. Также разработанная программа должна автоматически предусматривать возможность выбора пользователем одного из видов платежа (аннуитетный или дифференцированный) для кредитных операций. При ее разработке учесть следующие параметры (Вариант №2):

Кредитная операция

Депозитная операция

Срок кредитования

Срок депозитной операции

от 1 до 3 лет

от 3 до 5 лет

от 5 до 40 лет

первоначальный взнос от суммы кредита в %

до 2 лет

до 5 лет

до 10 лет

минимальная сумма для депозитной операции

19

14

8

25

12

13

15

500000

5. Расчет кредитных и депозитных операций с использованием VBA

кредит депозит программа листинг интерфейс

5.1 Схема алгоритма выполнения программы

Размещено на http://www.allbest.ru/

Рис.5.1- Схема алгоритма выполнения программы

5.1.1 Процедура создания рабочей книги

Рис.5.1.1- Схема алгоритма подпрограммы создания рабочей книги

После запуска подпрограммы появляется окно с командами «расчет кредитов и депозитов» и «выход». При выборе первой команды создается рабочая книга.

Листинг данной подпрограммы можно посмотреть в приложении 2, копия экрана работающей программы находится на рисунке 1 приложения 1.

5.1.2 Процедура сохранения файла

Рис. 5.1.2- Схема алгоритма процедуры сохранения файла

После запуска данной подпрограммы открывается окно сохранения рабочей книги. Рабочая книга сохраняется под именем пользователя.

Листинг данной подпрограммы можно посмотреть в приложении 2, копии экрана работающей программы находится на рисунках 5, 6 приложения 1.

5.1.3 Процедура выхода из программы

Рис. 5.1.3 - Схема алгоритма процедуры выхода из программы

Процедура запускается при нажатии кнопки «Выход», после чего появляется запрос у пользователя на подтверждение выхода. При положительном ответе происходит закрытие рабочей книги, при отрицательном - процедура завершается.

Листинг данной подпрограммы можно посмотреть в приложении 2, копия экрана работающей программы находится на рисунке 3 приложения 1.

5.1.4 Процедура расчета кредитов

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Рис. 5.1.4 - Схема алгоритма процедуры расчета кредитов

При запуске данной процедуры проверяется правильность введенных пользователем данных и определяется процентная ставка кредита. Далее очищаются все ячейки рабочего листа, затем ячейки заполняются первоначальной информацией, устанавливается их формат и ширина столбцов. В зависимости от выбранного пользователем переключателя производится переход на процедуру расчета дифференциального или аннуитетного кредита.

Листинг данной подпрограммы можно посмотреть в приложении 2, копия экрана работающей программы находится на рисунке 4 приложения 1.

5.1.5 Процедура расчета кредитов дифференцированным методом

Размещено на http://www.allbest.ru/

Рис. 5.1.5 - Схема алгоритма процедуры расчета кредитов дифференцированным методом

При запуске данной процедуры производится расчет кредита дифференциальным методом: расчет выплаты по основному долгу, выплаты по процентам, и всего долга. После расчета все полученные данные выводятся в рабочую книгу, а также строится график по вычисленным данным. Листинг данной подпрограммы можно посмотреть в приложении 2, копии экрана работающей программы находится на рисунках 4, 5, 7 приложения 1.

5.1.6 Процедура расчета кредитов аннуитетным методом

Размещено на http://www.allbest.ru/

Рис. 5.1.6 - Схема алгоритма процедуры расчета кредитов аннуитетным методом

При запуске данной процедуры производится расчет кредита аннуитетным методом: расчет выплаты по основному долгу, выплаты по процентам, и всего долга. После расчета все полученные данные выводятся в рабочую книгу, а также строится график по вычисленным данным. Листинг данной подпрограммы можно посмотреть в приложении 2, копии экрана работающей программы находятся на рисунках 9, 10, 11 приложения 1.

5.1.7 Процедура расчета депозитов

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Рис. 5.1.7- Схема алгоритма процедуры расчета депозитов

При запуске данной процедуры проверяется правильность введенных пользователем данных и определяется процентная ставка. Далее очищаются все ячейки рабочего листа, затем ячейки заполняются первоначальной информацией, устанавливается их формат и ширина столбцов. В зависимости от выбранного пользователем переключателя производится переход на процедуру расчета депозита по простому или сложному проценту.

Листинг данной подпрограммы можно посмотреть в приложении 2, копия экрана работающей программы находится на рисунке 12 приложения 1.

5.1.8 Процедура расчета депозита по простому проценту

Размещено на http://www.allbest.ru/

Рис. 5.1.8 - Схема алгоритма процедуры расчета депозита по простому проценту

При запуске данной процедуры производится расчет депозита по простому проценту. После расчета все полученные данные выводятся в рабочую книгу, а также строится график по вычисленным данным.

Листинг данной подпрограммы можно посмотреть в приложении 2, копии экрана работающей программы находятся на рисунках 12, 13, 14 приложения 1.

5.1.9 Процедура расчета депозита по сложному проценту

Размещено на http://www.allbest.ru/

Рис. 5.1.9 - Схема алгоритма процедуры расчета депозита по сложному проценту

При запуске данной процедуры производится расчет депозита по сложному проценту. После расчета все полученные данные выводятся в рабочую книгу, а также строится график по вычисленным данным.

Листинг данной подпрограммы можно посмотреть в приложении 2, копии экрана работающей программы находятся на рисунках 15, 16 приложения 1.

Заключение

В данной курсовой работе я ознакомилась с использованием Visual Basic for Applications в автоматизации банковских операций, написала программу для расчета кредитных операций (для аннуитетных и дифференцированных платежей) и депозитных операций (для простого и сложного депозита). Также программа автоматически по рассчитанным данным строит графики, по которым можно судить о правильности расчетов. Для удобства рабочие книги сохраняются под именем пользователя.

При подготовке к работе изучила следующие теоретические вопросы:

1. Структура банка

2. Виды банковских операций

3. Среда VBA

Литература

1. С. Роман, «Использование макросов в Excel» - М.,2004г..

2. Е. Нагина, В. Ищенко, «Visual Basic for Applications. Практика» - Воронеж, 2009г.

3. Методические пособия по VBA

4. Интернет-ресурсы:

4.1 www.glossary.ru

4.2 www.combanks.ru

4.3 www.ccas.ru

4.4 www.rusipoteka.ru

4.5 www.ipohelp.ru

4.6 www.fidelity-credit.ru

4.7 www.cfin.ru

4.8 www.superwork.org

4.9 www.globalteka.ru

5. Конспект лекций

Приложение 1. Пример выполнения программы

При запуске рабочей книги открывается окно запроса на подтверждение запуска данной программы:

Рис. 1. - Окно запроса на подтверждение запуска программы

При нажатии кнопки «Выход» программа завершается. При нажатии на кнопку «Расчет кредитов и депозитов» создается рабочая книга с двумя рабочими листами «Лист1» и «Диаграмма», далее запускается форма для ввода данных:

Рис. 2. - Окно для ввода данных

При нажатии кнопки «Выход» на этой форме появляется окно подтверждения выхода. При положительном ответе программа завершается.

Рис. 3. - Окно выхода из программы

Для расчета кредитной операции выбирается соответствующая вкладка, нужный тип платежа и вводятся требуемые данные. Сперва выберем дифференцированный платеж:

Рис. 4. - Окно для расчета кредитов

На рабочий лист выводятся вычисленные параметры дифференцированного кредита, а также появляется окно с запросом на сохранение рабочей книги. При нажатии кнопки «Сохранить» появляется окно сохранения файла. Файлу автоматически присваивается имя пользователя. При нажатии кнопки «Закрыть окно» данное окно закрывается.

Рис. 5. - Вычисленные параметры дифференцированного кредита

Рис. 6. - Окно сохранения рабочей книги

После сохранения книги окно сохранения документа закрывается, и мы можем просмотреть результаты вычисления дифференцированного кредита

При выборе вкладки «Диаграмма» выводится график рассчитанных параметров кредита.

Рис. 7. - График рассчитанных параметров дифференцированного кредита

Для расчета какой-либо другой операции нужно нажать кнопку «Пересчитать» на рабочем листе, после чего запускается форма для ввода данных и создается новая книга, куда записываются результаты выбранной операции

Рис. 8. - Кнопка «Пересчитать» на рабочем листе

Для расчета аннуитетного кредита выберем вкладку «Кредит» и внесем все необходимые данные:

Рис. 9. - Вычисленные параметры аннуитетного кредита

Рис. 10. - График рассчитанных параметров аннуитетного кредита

При расчете аннуитетного кредита, если задать большой срок кредитования, линии графика рассчитанных параметров закругляются. Полученное искажение объясняется малой областью построения.

Рис. 11. - График рассчитанных параметров аннуитетного кредита

Для расчета депозитной операции выбирается соответствующая вкладка, нужный тип депозита и вводятся необходимые данные. Для примера произведем расчеты простого депозита:

Рис. 12. - Окно для расчета депозитов

После нажатия кнопки «Рассчитать» на рабочий лист выводятся все вычисленные данные и график по ним:

Рис. 13. - Вычисленные параметры депозита по простому проценту

Рис. 14. - График рассчитанных параметров депозита по простому проценту

Пример вычисления депозита по сложному проценту (для увеличения наглядности графика проценты депозита были увеличены):

Рис. 15. - Вычисленные параметры депозита по сложному проценту

Рис. 16. - График рассчитанных параметров депозита по сложному проценту

Приложение 2. Листинг программы

Dim Start

Private Sub Workbook_Open()

Workbooks.Add

'запрос на выполнение операций расчета кредитов и депозитов

UserForm3.Show

EndSub

PrivateSubRasKrDep_Click() `при нажатии кнопки «расчет кредитов и депозитов» создается рабочая книга

UnloadUserForm3

UserForm1.Show

EndSub

PrivateSubVuhod_Click() `при нажатии кнопки «выход» выходит из процедуры

' закрытие рабочих книг

ActiveWorkbook.CloseFalse

ThisWorkbook.Close

End Sub

OptionExplicit

Dim SaveName, Sv, Ex, Op, n'объявление переменых

Dim Sum As Double ' сумма кредита

Dim Sum1, Sum2, Sum3 As Double' сумма по осн. долгу, процентам и общая сумма

Dim Ps As Double'процентная ставка

Dim plat_mes As Double' ежемесячная плата

Dim osn_pl As Double' плата по основному долгу

Dimproc_pl As Double' плата по процентам

Dim ostatok As Double' остаток задолженности

Dim i As Integer

Dim SrocAs Integer ' срок кредита/депозита

Const Zagl As String = "Кредитные и депозитные операции"

' процедура сохранения файла

Private Sub Sohran_Click()

SaveName = Application.GetSaveAsFilename(InitialFileName:=FIO)

IfSaveName = FalseThenExitSub'при нажатии кнопки "отмена" выходит из процедуры

ActiveWorkbook.SaveAs Filename:=SaveName& "xls"

EndSub

' процедура выхода из программы

PrivateSubVihod_Click()

' запрос у пользователя на подтверждение выхода

Ex = MsgBox("Вы действительно хотите выйти?", vbYesNo + vbQuestion, Zagl)

If Ex = vbNo Then Exit Sub

' закрытие рабочих книг

ActiveWorkbook.Close False

ThisWorkbook.Close

End Sub

' процедура расчета кредитов

Private Sub RaschetCR_Click()

IfSumCr.Value = "" Then' показать ошибку, если не введена сумма кредита

MsgBox "Введите сумму кредита", , Zagl

ExitSub

EndIf

IfSrokCr.Value = "" Then' показать ошибку, если не введена сумма кредита

MsgBox "Введите срок кредитования", ,Zagl

ExitSub

EndIf

IfIsNumeric(SumCr.Value) = FalseThen' показать ошибку, если неправильно введена сумма кредита

MsgBox "Неправильно введена сумма кредита", ,Zagl

ExitSub

EndIf

IfIsNumeric(SrokCr.Value) = FalseThen' показать ошибку, если неправильно введен срок кредитования

MsgBox "Неправильно введен срок кредитования", ,Zagl

ExitSub

EndIf

' присвоение переменным значений, вводимых пользователем

Sum = CDbl(SumCr.Value)

Sroc = CInt(SrokCr.Value)

' проверка на правильность ввода срока кредитования

IfSroc< 1 Then

MsgBox "Минимальный срок кредитования - 1 год"

Exit Sub

End If

If Sroc> 40 Then

MsgBox "Максимальный срок кредитования - 40 лет"

ExitSub

EndIf

' приcваивание процентной ставки в зависимости от срока кредитования

If Sroc>= 1 AndSroc<= 3 Then Ps = 0.19

If Sroc> 3 AndSroc<= 5 Then Ps = 0.14

If Sroc> 5 Then Ps = 0.08

Cells.Clear ' очисткаячеек

Range("A1").Value = "Ф.И.О. клиента:" ' определение свойств ячеек; ввод значений

Range("A2").Value = "Типоперации "

Range("A3").Value = "Типплатежа:"

Range("A4").Value = "Сумма кредита, руб:"

Range("A5").Value = "Срок кредитования, лет:"

Range("A6").Value = "Процентная ставка:"

Range("A7").Value = "Первоначальный взнос, %:"

Range("A8").Value = "Первоначальный взнос, руб:"

Range("A10:D10").Font.Bold = True

Range("A10").Value = "№ месяца"

Range("B10").Value = "Оплата по основному долгу, руб"

Range("C10").Value = "Оплата по процентам, руб"

Range("D10").Value = "Ежемесячные платежи, руб"

Range("E9").Value = "Итого:"

Range("E9").Font.Bold = True

Range("F9").Value = "Плата по основному долгу"

Range("G9").Value = "Плата по процентам"

Range("H9").Value = "Общая плата:"

Range("B1").NumberFormat = "general" ' определение формата ячеек

Range("B2").NumberFormat = "Кредит"

Range("B3").NumberFormat = "general" 'общий

Range("B4").NumberFormat = "0.00$" 'денежный

Range("B5").NumberFormat = "0год(а)"

Range("B6").NumberFormat = "0.00%"

Range("B7").NumberFormat = "0.00%"

Range("B8").NumberFormat = "0.00$"

Range("B10:D500").NumberFormat = "0.00$"

Range("E10:H10").NumberFormat = "0.00$"

Columns("A:D").ColumnWidth = 30 ' определение ширины колонок

Columns("E").ColumnWidth = 10

Columns("F:H").ColumnWidth = 25

Range("B1").Value = FIO ' ввод исходных значений в рабочий лист

Range("B2").Value = "Кредит"

Range("B4").Value = Sum

Range("B5").Value = Sroc

Range("B6").Value = Ps

Range("B7").Value = 0.25

Range("B8").Value = Sum * 0.25

Sum = Sum - Sum * 0.25

' обнуление переменных

ostatok = 0

osn_pl = 0

proc_pl = 0

plat_mes = 0

Sum1 = 0

Sum2 = 0

Sum3 = 0

If DifCr.Value = True Then

Call DifferCr

End If

If AnCr.Value = True Then

Call AnnuitCr

End If

End Sub

' процедура расчета кредита дифференцированным методом

SubDifferCr()

If DifCr.Value = True Then

Range("B3").Value = "Дифференцированный"

osn_pl = Sum / (12 * Sroc)

' расчет выплаты по основному долгу, выплаты по процентам, и всего долга

For i = 1 ToSroc * 12

ostatok = Sum - (i - 1) * osn_pl

proc_pl = ostatok * Ps / 12

plat_mes = proc_pl + osn_pl

Sum1 = Sum1 + osn_pl

Sum2 = Sum2 + proc_pl

Sum3 = Sum3 + plat_mes

Cells(i + 10, 1).Value = I

Cells(i + 10, 2).Value = osn_pl

Cells(i + 10, 3).Value = proc_pl

Cells(i + 10, 4).Value = plat_mes

Next i

End If

' вывод итогов

Range("F10").Value = Sum1

Range("G10").Value = Sum2

Range("H10").Value = Sum3

Call kredGrafik

Form1.Hide

OknoSohr.Show

EndSub

' процедура расчета кредитов аннуитетным методом

Sub AnnuitCr()

If AnCr.Value = True Then

Range("B3").Value = "Аннуитетный"

n = Sroc * 12

plat_mes = (Sum * (Ps / 12)) / (1 - ((1 + Ps / 12) ^ (-n)))

' расчет выплаты по основному долгу, выплаты по процентам, и всего долга

For i = 1 To n

proc_pl = Sum * Ps / 12

osn_pl = plat_mes - proc_pl

Sum = Sum - osn_pl

Sum1 = Sum1 + osn_pl

Sum2 = Sum2 + proc_pl

Sum3 = Sum3 + plat_mes

Cells(i + 11, 1).Value = i

Cells(i + 11, 2).Value = osn_pl

Cells(i + 11, 3).Value = proc_pl

Cells(i + 11, 4).Value = plat_mes

Next i

End If

' вывод итогов

Range("F10").Value = Sum1

Range("G10").Value = Sum2

Range("H10").Value = Sum3

Call kredGrafik

Form1.Hide

OknoSohr.Show

EndSub

' процедура расчета депозитов

Private SubRaschetDEP_Click()

IfSumDep.Value = "" Then ' показать ошибку, если не введена сумма депозита

MsgBox "Введитесуммудеопзита", ,Zagl

ExitSub

EndIf

IfSrokDep.Value = "" Then ' показать ошибку, если не введена сумма депозита

MsgBox "Введите срок депозита", ,Zagl

ExitSub

EndIf

IfIsNumeric(SumDep.Value) = FalseThen ' показать ошибку, если неправильно введена сумма депозита

MsgBox "Неправильно введена сумма депозита", ,Zagl

ExitSub

EndIf

IfIsNumeric(SrokDep.Value) = FalseThen ' показать ошибку, если неправильно введен срок депозита

MsgBox "Неправильно введен срок депозита", ,Zagl

ExitSub

EndIf

' присвоение переменным значений, вводимых пользователем

Sum = CDbl(SumDep.Value)

Sroc = CInt(SrokDep.Value)

' проверка на правильность ввода срока депозита

IfSroc< 1 Then

MsgBox "Минимальный срок депозита - 1 месяц"

Exit Sub

End If

IfSroc> 120 Then

MsgBox "Максимальный срок депозита - 10 лет"

ExitSub

EndIf

' приcваивание процентной ставки в зависимости от срока депозита

If Sroc>= 1 AndSroc<= 24 Then Ps = 0.12

If Sroc> 24 AndSroc<= 60 Then Ps = 0.13

If Sroc> 60 AndSroc<= 120 Then Ps = 0.15

' проверка вводимой суммы депозита

IfSum< 500000 Then

MsgBox "Минимальная сумма депозита - 500000 рублей"

Exit Sub

End If

Cells.Clear ' очисткаячеек

Range("A1").Value = "Ф.И.О. клиента:"

Range("A2").Value = "Типоперации: "

Range("A3").Value = "Методрасчета:"

Range("A4").Value = "Сумма депозита, руб:"

Range("A5").Value = "Срок депозита, мес:"

Range("A6").Value = "Процентная ставка:"

Range("A7").Value = "Минимальная сумма:, руб:"

Range("A10").Value = "№ месяца"

Range("B10").Value = "Основной депозит, руб"

Range("C10").Value = "Проценты, руб"

Range("D10").Value = "Сумма, руб"

Range("B1").NumberFormat = "general" ' определение формата ячеек

Range("B2").NumberFormat = "general"

Range("B4").NumberFormat = "0.00$"

Range("B5").NumberFormat = "0мес"

Range("B6").NumberFormat = "0.00%"

Range("B7").NumberFormat = "0.00$"

Range("A10:D10").Font.Bold = True

Range("B9:D140").NumberFormat = "0.00$"

Range("E11:H11").NumberFormat = "0.00$"

Columns("A:D").ColumnWidth = 25 ' определение ширины колонок

Columns("E").ColumnWidth = 10

Columns("F:H").ColumnWidth = 15

Range("B1").Value = FIO.Value ' ввод исходных значений в рабочий лист

Range("B2").Value = "Депозит"

Range("B4").Value = Sum

Range("B5").Value = Sroc

Range("B6").Value = Ps

Range("B7").Value = 500000

' обнуление переменных

osn_pl = 0

proc_pl = 0

plat_mes = 0

Sum1 = 0

If PrProc.Value = True Then

Call ProstProc

End If

If SlProc.Value = True Then

Call SlozhnProc

End If

End Sub

' процедура расчета депозита по простому проценту

Sub ProstProc()

If PrProc.Value = True Then

Range("B3").Value = "Простой процент"

proc_pl = Sum * Ps / 12

osn_pl = Sum

For i = 1 ToSroc

Sum1 = proc_pl * i

plat_mes = osn_pl + Sum1

Cells(i + 10, 1).Value = I

Cells(i + 10, 2).Value = osn_pl

Cells(i + 10, 3).Value = Sum1

Cells(i + 10, 4).Value = plat_mes

Next i

End If

' вывод итогов

Range("e7:h9").NumberFormat = "#,##0.00$"

Range("e7").Value = "Итого:"

Range("e7").Font.Bold = True

Range("f8").Value = "Депозит"

Range("g8").Value = "Проценты"

Range("h8").Value = "Всего"

Range("f9").Value = osn_pl

Range("g9").Value = Sum1

Range("h9").Value = Sum1 + osn_pl

Call depGraf

Form1.Hide

OknoSohr.Show

EndSub

' процедура расчета депозита по сложному проценту

Sub SlozhnProc()

If SlProc.Value = True Then

Range("B3").Value = "Сложный процент"

proc_pl = Sum * Ps / 12

osn_pl = Sum

For i = 1 ToSroc

Sum1 = proc_pl * i

osn_pl = Sum * i

plat_mes = osn_pl + Sum1

Cells(i + 10, 1).Value = i

Cells(i + 10, 2).Value = osn_pl

Cells(i + 10, 3).Value = Sum1

Cells(i + 10, 4).Value = plat_mes

Next i

End If

' выводитогов

Range("e7:h9").NumberFormat = "#,##0.00$"

Range("e7").Value = "Итого:"

Range("e7").Font.Bold = True

Range("f8").Value = "Депозит"

Range("g8").Value = "Проценты"

Range("h8").Value = "Всего"

Range("f9").Value = osn_pl

Range("g9").Value = Sum1

Range("h9").Value = Sum1 + osn_pl

Call depGraf

Form1.Hide

OknoSohr.Show

EndSub

` процедура построения графика для кредитов

Sub kredGrafik()

'' difGrafik Макрос

ActiveSheet.Shapes.AddChart.Select

ActiveChart.ChartType = xlLineMarkers

ActiveChart.Location Where:=xlLocationAsNewSheet

ActiveChart.Set Source Data Source:=Range(Sheets("Лист1").Cells(10, 2), Sheets("Лист1").Cells(Sroc * 12 + 9, 4))

ActiveChart.Series Collection(1).Name = "='Лист1'!$C$10"

ActiveChart.Series Collection(3).Name = "='Лист1'!$D$10"

ActiveChart.ClearToMatchStyle

Sheets("Лист1").Select

End Sub

` процедура построения графика для депозитов

Sub depGraf()

' prProc Макрос

'ActiveSheet.Shapes.AddChart.Select

ActiveChart.ChartType = xlLineMarkers

ActiveChart.Location Where:=xlLocationAsNewSheet

ActiveChart.SetSourceData Source:=Range(Sheets("Лист1").Cells(10, 2), Sheets("Лист1").Cells(Sroc + 9, 4))

ActiveChart.SeriesCollection(1).Name = "='Лист1'!$C$10"

ActiveChart.SeriesCollection(3).Name = "='Лист1'!$D$10"

ActiveChart.ClearToMatchStyle

Sheets("Лист1").Select

` процедура вызова кнопки «Пересчитать»

PrivateSub очистить_Click()е

' очиститьМакрос

Workbooks.Add

UserForm1.Show

EndSub

Размещено на Allbest.ru


Подобные документы

  • Структура и основные операции коммерческого банка. Использование языка программирования Visual Basic for Application, математическая формулировка задачи. Разработка модуля программы расчёта кредитов и депозитов. Схема алгоритма выполнения программы.

    курсовая работа [2,9 M], добавлен 09.04.2012

  • Функции и основная роль коммерческого банка. Особенности кредитных и депозитных операций. Описание среды программирования и сущность Visual Basic for Applications (VBA). Схема алгоритма программы, процедура сохранения файла и выхода из программы.

    курсовая работа [1,9 M], добавлен 04.04.2012

  • Разработка программы с использованием языка программирования Pascal для выполнения алгебраических действий с действительными числами без знака в шестнадцатеричной системе счисления. Описание хода выполнения, схема алгоритма, листинг программы, ее функции.

    реферат [687,5 K], добавлен 28.10.2011

  • История создания и развитие языка программирования Pascal, его версии. Особенности и порядок построения графика функции на языке Turbo Pascal с использованием декартовой системы координат. Блок схема алгоритма процедур, листинг и тестирование программы.

    курсовая работа [102,7 K], добавлен 23.12.2011

  • Программа для расчета полинома. Описание и схема алгоритма, распределение памяти под код программы, под данные и стек. Схема хранения операций ввода-вывода и их подключение. Изменения стека во время прогона программы. Листинг программы с комментариями.

    курсовая работа [59,0 K], добавлен 02.12.2009

  • Вычисление физических параметров реальной электрической цепи посредством преобразования её к эквивалентной. Схема алгоритма программы и ее разработка на языках программирования СИ и С++, результаты расчета зависимостей эквивалентных сопротивлений.

    курсовая работа [19,9 K], добавлен 15.10.2010

  • C++ как универсальный язык программирования, его сущность, назначение, классы и возможности. Блок-схема и листинг программы KURS.EXE, ее принцип работы, системные требования, возможные неполадки и способы их устранения. Листинг заставки VOVA777.EXE.

    курсовая работа [422,3 K], добавлен 31.05.2010

  • Язык Паскаль - процедурно-ориентированный язык высокого уровня, его основные достоинства. Разработка программ для решения задач. Выбор метода обработки информации. Форма представления исходных данных. Разработка алгоритма, его описание, листинг программы.

    курсовая работа [3,6 M], добавлен 17.02.2013

  • Разработка программы "Виселица" с использованием программной среды Visual Basic и средств объектно-ориентированного программирования: программные требования, описание алгоритма, блок-схема программы и дополнительной процедуры. Листинг программы.

    курсовая работа [188,2 K], добавлен 28.06.2009

  • Математическое обоснование метода решения задачи: определенный интеграл, квадратурная формула Симпсона (формула парабол). Словесное описание алгоритма и составление его блок-схемы. Выбор языка программирования. Текст программы решения задачи, ее листинг.

    курсовая работа [593,6 K], добавлен 09.07.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.